Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
бд.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.92 Mб
Скачать

Операція з'єднання

Реляційна алгебра: A JOIN B.

Операція з'єднання дозволяє з'єднувати рядки з більш ніж однієї таблиці (за деякою умовою) для утворення нових рядків даних.

Приклад 6. Отримати список керівників проектів:  SELECT first_name, last_name, department_name FROM employees JOIN departments ON employees.employee_id = departments.manager_id

або

SELECT first_name, last_name, department_name FROM employees, departments  WHERE employees.employee_id = departments.manager_id

Таблиця 10.9. Список керівників проектів

FIRST_NAME

LAST_NAME

PROJ_NAME

Jennifer

Whalen

Administration

Michael

Hartstein

Marketing

Den

Raphaely

Purchasing

Susan

Mavris

Human Resources

Adam

Fripp

Shipping

Alexander

Hunold

IT

Hermann

Baer

Public Relations

John

Russell

Sales

Steven

King

Executive

Nancy

Greenberg

Finance

Shelley

Higgins

Accounting

Приклад 7. Отримати список керівників проектів с зарплатнею більше за 10 000:  SELECT first_name, last_name, department_name FROM employees JOIN departments ON employees.employee_id = departments.manager_id  WHERE employees.salary > 10000

Таблиця 10.10. Список керівників проектів с зарплатнею більше за 10 000

FIRST_NAME

LAST_NAME

PROJ_NAME

Michael

Hartstein

Marketing

Den

Raphaely

Purchasing

John

Russell

Sales

Steven

King

Executive

Nancy

Greenberg

Finance

Shelley

Higgins

Accounting

Операція об'єднання

Реляційна алгебра: A UNION B.

Операція об'єднання дозволяє об'єднувати результати окремих запитів по декількох таблицях в єдину результуючу таблицю. Таким чином, команда UNION об'єднує виведення двох або більше SQL-запитів в єдиний набір рядків і стовпців.

Приклад 8. Отримати список працівників, які працювали або працюють у відділі бухгалтерії (department_id = 110):  SELECT first_name, last_name, employees.department_id FROM employees WHERE department_id = 110 UNION ALL SELECT first_name, last_name, job_history.department_id FROM job_history, employees WHERE employees.employee_id = job_history.employee_id and job_history.department_id = 110

Таблиця 10.11. Список працівників, які працювали або працюють у відділі бухгалтерії

FIRST_NAME

LAST_NAME

DEPARTMENT_ID

Shelley

Higgins

110

William

Gietz

110

Neena

Kochhar

110

Neena

Kochhar

110

Для довідки, наведемо загальну форму команди SELECT, що враховує можливість з'єднання декількох таблиць та об'єднання результатів:  SELECT [DISTINCT] список_вибираємих_элементів (полів)  FROM список_таблиць (або уявлень)  [WHERE предикат]  [GROUP BY поле (або поля) [HAVING предикат]]  [UNION [ALL] інший_вираз_SELECT]  [ORDER BY поле (або поля) або номер (номери)]