Вступ до приєднання до Oracle

Приєднання до Oracle використовуються для доступу до даних з декількох таблиць. Об'єднання в oracle використовується в тому місці, де потрібно об'єднати більше двох таблиць для збору корисної інформації в операторі Oracle SQL. Іншими словами, запит приєднання використовується для отримання рядків з більш ніж двох таблиць або представлень на основі умов приєднання. Умова приєднання може бути визначена в пункті FROM або в пункті where. Умова приєднання порівнює стовпці різних таблиць і витягує ті рядки, для яких умовою приєднання є правдою.

Типи приєднань до Oracle

В Oracle існує десять різних типів приєднань, як наведено нижче:

  • Внутрішні приєднання (також відомі як прості приєднання)
  • Приєднується Equi
  • Зовнішній приєднується
  • Приєднується ліворуч (також його називають лівим приєднанням)
  • Права зовнішня приєднується (також називається "Права приєднується")
  • Повне зовнішнє приєднання (його також називають повним приєднанням)
  • Self приєднується
  • Перехресні приєднання (їх також називають декартовими продуктами)
  • Anti Joins
  • Semi приєднується

Далі ми детально розуміємо кожне приєднання до синтаксису та прикладів.

1. ВНУТРІШНЕ ПРИЄДНАННЯ (також відоме як Просте приєднання)

Внутрішнє приєднання приєднується до декількох таблиць і повертає ті рядки, для яких умова приєднання відповідає дійсності. Внутрішнє з'єднання є найпоширенішим приєднанням серед типів приєднання.

Синтаксис:

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

Наведена нижче діаграма представляє візуальне зображення внутрішнього з'єднання, як на діаграмі повернення затіненої області в результаті з'єднання Oracle INNER:

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. Приєднується до рівня рівних

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;

Нижче наведено три типи зовнішнього з'єднання:

  • Приєднується ліворуч (також його називають лівим приєднанням)
  • Права зовнішня приєднується (також називається "Права приєднується")
  • Повне зовнішнє приєднання (його також називають повним приєднанням)

4. Залишилося зовнішнє приєднання

Повернення лівого зовнішнього з'єднання містять усі рядки з таблиці Вліво (відповідно до зазначеної в умові ВКЛ.), А з іншої таблиці - лише ті рядки, де умова об'єднаного є вірною.

Синтаксис:

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

Ключове слово LEFT OUTER ПРИЄДНАЙТЕ, використовуйте ЛІТЬКИЙ ПРИЄДНАЙТЕСЬ у деяких інших базах даних.

Наведена нижче діаграма представляє візуальне зображення СПІЛЬНОГО ВИРОБНОГО ПРИЄДНАННЯ, як на діаграмі повернення затіненої області в результаті приєднання до Oracle LEFT OUTER:

Oracle LEFT OUT 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 містить усі рядки з таблиці RIGHT (відповідно до зазначеної в умові ON), а з іншої таблиці - лише ті рядки, у яких справжня умова з'єднання.

Синтаксис:

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

Ключове слово ПРИЄДНО ПРИЄДНАЙТЕ, використовуйте як ПРАВИЛЬНЕ ПРИЄДНАННЯ в деяких інших базах даних.

Наведена нижче діаграма представляє візуальне зображення ПРАВИЛЬНОГО ВІДХОДЖЕННЯ, як на діаграмі повернення затіненої області в результаті з'єднання 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 FULL OUTER JOIN.

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 Join

При самостійному приєднанні таблиця використовує двічі в пункті 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 Join (також називається декартовою продукцією)

Перехресне з'єднання застосовується, коли дві таблиці не мають умови приєднання. Перехресне з'єднання повертає декартовий добуток двох таблиць, декартовий продукт, де кожен рядок однієї таблиці поєднується з кожним рядком іншої таблиці. Припустимо, таблиця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 містять рядки з таблиці LEFT (відповідно до вказаної умови 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 приєднується

Повернення напівз'єднання містять унікальні рядки з таблиці ВЛЕВО (відповідно до зазначеної в умові ВКЛ.), Де відповідає запиту 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. Табле приєднується
  3. Oracle склад будівельника
  4. Функції рядка Oracle
  5. Що таке запит та типи запитів Oracle
  6. Топ 6 типів приєднань до MySQL з прикладами
  7. Керівництво до перших 9 статей Oracle (приклад) l
  8. SELECT в MySQL | Приклади для вибору в MySQL

Категорія: