Въведение в присъединяването към Oracle

Съединенията в Oracle се използват за достъп до данните от множество таблици. Съединението в oracle се използва на място, където трябва да се присъединят повече от две таблици, за да се събере полезната информация в оператора Oracle SQL. С други думи, заявката за присъединяване, използвана за извличане на редовете от повече от две таблици или изгледи въз основа на условията за присъединяване. Условието за присъединяване може да бъде посочено в клаузата FROM или в клаузата където. Условието за присъединяване сравнява колоните на различните таблици и извлича онези редове, за които условието за присъединяване е вярно.

Видове присъединения в Oracle

В Oracle има десет различни типа присъединения, както е дадено по-долу:

  • Вътрешни присъединявания (известни също като Simple Joins)
  • Equi се присъединява
  • Външно се присъединява
  • Ляво външно присъединяване (наричано още ляво присъединяване)
  • Right Outer Joins (наричан още като Right Joins)
  • Пълно външно присъединяване (наричано още като пълно присъединяване)
  • Self се присъединява
  • Кръстосани съединения (наричани също декартови продукти)
  • Anti Joins
  • Полусъединява

На следващо място, ние разбираме всеки обединява в детайли със синтаксиса и примерите.

1. ВЪТРЕШНО ПРИЛОЖЕНИЕ (известно също като Simple Join)

Вътрешните съединения се присъединяват към множеството таблици и връщат онези редове, за които условието за присъединяване е вярно. Вътрешното присъединяване е най-често срещаното съединение сред типовете присъединяване.

Синтаксис:

SELECT column (, column ) FROM t1
INNER JOIN t2
ON t1.column = t2.column;

Диаграмата по-долу представлява визуалното представяне на вътрешното съединение, както в диаграмата връщащата се в сянка зона в резултат на Oracle INNER JOIN:

Oracle INNER JOIN връща пресечните записи на t1 и t2 в резултат.

Пример:

SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee
INNER JOIN department
ON employee.employee _id = department.employee _id;

Този по-горе пример на Oracle INNER JOIN ще върне всички редове от таблиците на служителите и отделите, където стойността _id на служителя и в таблиците на служителя, и в отдела съвпадат.

2. Equi се присъединява

Oracle Equi Joins извлича съвпадащите стойности на колоните на множеството таблици. Условието за присъединяване или оператора за сравнение, присъстващ в клаузата WHERE на оператора select.

Синтаксис:

SELECT column (, column ) FROM t1, t2
where t1.column = t2.column;

Диаграмата по-долу представлява визуалното представяне на еквиорна, както на диаграмата връщането в засенчена зона в резултат на присъединяването на Oracle Equi.

Oracle Equijoin връща пресечните записи на t1 и t2 в резултат.

Пример:

SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee, department
where employee.employee _id = department.employee _id;

Този по-горе пример на Oracle Equijoin ще върне всички редове от таблиците на служителите и отделите, където стойността _id на служителя и в таблиците на служителя, и в отдела съвпадат.

3. Външни съединения

Друг вид съединения е външно съединение, което връща резултат от вътрешно присъединяване плюс всички редове от една таблица, за които условието за присъединяване не е вярно.

Синтаксис:

SELECT column (, column ) FROM t1
LEFT | RIGHT | FULL (OUTER) JOIN t2
ON t1.column = t2.column;

Има три типа външно съединение, както е дадено по-долу:

  • Ляво външно присъединяване (наричано още ляво присъединяване)
  • Right Outer Joins (наричан още като Right Joins)
  • Пълно външно присъединяване (наричано още като пълно присъединяване)

4. Ляво външно присъединяване

Влявотата за връщане на лявото външно съединение съдържат всички редове от таблицата НАЛЯВО (според посоченото в условие ВКЛЮЧЕНО), а от другата таблица само онези редове, в които условието за присъединяване е вярно.

Синтаксис:

SELECT column (, column ) FROM t1
LEFT (OUTER) JOIN t2
ON t1.column = t2.column;

Ключовата дума LEFT OUTER JOIN, използвайте LEFT JOIN в някои други бази данни.

Диаграмата по-долу представлява визуалното представяне на СЛЕДНОТО ВЪНШНО ПРИЛОЖЕНИЕ, както на диаграмата връщането в засенчена зона като резултат от Oracle LEFT OUTER JOIN:

Oracle LEFT OUTER JOIN връща всички записи от t1 и пресечните записи на t1 и t2 в резултат.

Пример:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
LEFT OUTER JOIN department
ON employee.employee _id = department.employee _id;

Този по-горе пример на Oracle LEFT OUTER JOIN ще върне всички редове от таблицата на служителите, а от таблицата на отдела само онези редове, в които обединеното условие е вярно. Таблиците на отделите, където стойността _id на служителя както в таблицата на служителя, така и в отдела съвпадат.

Ако стойността _id на служителя в таблицата на служителя съвпада в таблицата на отдела, тогава полетата на таблицата на отдела ще бъдат нулеви в резултата.

5. Право външно присъединяване

Връщанията RIGHT OUTER JOIN съдържат всички редове от таблицата НАДЯСНО (според посоченото в условие ON), а от другата таблица само онези редове, в които условието за присъединяване е вярно.

Синтаксис:

SELECT column (, column ) FROM t1
RIGHT (OUTER) JOIN t2
ON t1.column = t2.column;

Ключовата дума RIGHT OUTER JOIN, използвайте като ПРАВО ПРИЛОЖЕТЕ в някои други бази данни.

Диаграмата по-долу представлява визуалното представяне на ПРАВО ВЪНШНОТО ПРИЛОЖЕНИЕ, както в диаграмата връщането на засенчената зона в резултат на Oracle RIGHT OUTER JOIN.

Oracle RIGHT OUTER JOIN връща всички записи от t2 и пресечните записи на t1 и t2 в резултат.

Пример:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
RIGHT OUTER JOIN department
ON employee.employee _id = department.employee _id;

Този по-горе пример на Oracle LEFT OUTER JOIN ще върне всички редове от таблицата на отдела, а от таблицата на служителите само онези редове, в които обединеното условие е вярно. Таблиците на служителите, в които стойността _id на служителя и в таблиците на служителя, и в отдела съвпадат.

Ако стойността _id на служителя в таблицата на служителя съвпада в таблицата на отдела, тогава полетата на таблицата на служителя ще бъдат нулеви в резултата.

6. Пълно външно присъединяване

Пълните връщания за външно присъединяване съдържат всички редове от таблицата НАЛЯВО и НАДЯСНО с нула в полета, където условието за присъединяване не е вярно.

Синтаксис:

SELECT column (, column ) FROM t1
FULL (OUTER) JOIN t2
ON t1.column = t2.column;

Ключовата дума FULL OUTER JOIN използвайте като ПЪЛНО ПРИЛОЖЕНИЕ в някои други бази данни.

Диаграмата по-долу представлява визуалното представяне на ПЪЛНИЯТ ВЪНШЕН ПРИЛОЖЕНИЕ, както в диаграмата връщането в засенчена зона като резултат от ПЪЛНИЯТ ВЪНШЕН СЪВЕТ Oracle

Oracle FULL OUTER JOIN като резултат връща всички записи от таблици t1 и t2.

Пример:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
FULL OUTER JOIN department
ON employee.employee _id = department.employee _id;

Този по-горе пример на Oracle FULL OUTER JOIN ще върне всички редове от таблицата на служителите и от таблицата на отдела с нулеви стойности, когато присъединеното условие не е вярно.

7. Oracle Self се присъединява

При самостоятелно присъединяване таблицата използва два пъти в клаузата FROM с помощта на името на псевдонимите на таблицата. С други думи, азът се присъединява, присъединете се към самата маса. Oracle Self Join комбинира и връща редове от таблицата, където условието за присъединяване е вярно.

Пример:

SELECT emp1.employee_name || 'works for' || emp2.employee_name
FROM employees emp1, employees emp2
WHERE emp1.manager_id = emp2.employee_id
ORDER BY emp1.employee_name;

Този по-горе пример за Oracle self JOIN ще върне всички редове от таблицата на служителите, където условието за присъединяване е вярно.

8. Oracle Cross Joins (наричан още като декартови продукти)

Кръстосано присъединяване се прилага, когато двете таблици нямат условие за присъединяване. Кръстосаното съединение връща декартовия продукт на двете таблици, декартови продукт, където всеки ред от една таблица се комбинира с всеки ред на другата таблица. Да предположим, че таблица1 съдържа 100 реда, а table2 съдържа 10 реда, след което резултатът на свързване ще съдържа 1000 реда.

Пример;

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
CROSS JOIN department

Този пример за кръстосване JOIN ще върне всички редове от таблицата на служителите, комбинирани с всички редове от таблицата на отдела.

9. Oracle Anti Joins

Връзките antijoin съдържат редове от таблицата НАЛЯВО (според посоченото в условие ON), където съединяваното условие е вярно.

Пример:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
WHERE department_id NOT IN (SELECT department_id from department
WHERE department_name = 'sales';

Този по-горе пример на Oracle ANTI JOIN ще върне редове от таблицата на служителите и където условието за присъединяване е вярно.

10. Oracle Semi Join

Полуприсъединителните връщания съдържат уникални редове от таблицата НАЛЯВО (според посоченото в условие ВКЛЮЧЕНО), където съвпадение с подзапитване EXISTS е вярно.

Пример:

SELECT employee.employee _id, employee.employee_name
FROM employee
WHERE EXISTS (SELECT department_id FROM department
WHERE department_name = 'sales');

Този по-горе пример на Oracle SEMI JOIN ще върне редове от таблицата на служителите, ако EXISTS върне вярно.

заключение

Използва се за достъп до данните от множество таблици. Има седем различни вида присъединения в Oracle.

Препоръчителни статии

Това е ръководство за Присъединяване в Oracle. Тук обсъждаме въведение за Joins in Oracle и неговите 10 различни вида в Joins in Oracle. Можете също да прегледате и другите ни свързани статии, за да научите повече -

  1. Видове съединения в SQL
  2. Tableau се присъединява
  3. Oracle склад строител
  4. Oracle струнни функции
  5. Какво е запитване и типове Oracle заявки
  6. Топ 6 вида съединения в MySQL с примери
  7. Ръководство за първите 9 клаузи за Oracle (пример) l
  8. ИЗБЕРЕТЕ в MySQL | Примери за ИЗБОР в MySQL

Категория: