ВНУТРІШНЄ ПРИЄДНАННЯ
Об'єднання таблиць
У реляційних базах даних дані часто об'єднано в кілька таблиць, щоб мінімізувати резервування та підвищити цілісність даних. Цей підхід до розробки, відомий як нормалізація, дозволяє уникнути повторення однакових відомостей у різних місцях. Однак це означає, що корисна інформація часто поширюється на кілька таблиць.
Об'єднання – це основні операції SQL, які перекривають цей проміжок, що дає змогу об'єднувати рядки з двох або більше таблиць і отримувати пов'язані дані в одному єдиному наборі результатів. По суті, об'єднання дають змогу запитувати відомості, які логічно пов'язані, але фізично розділені. Вони досягають цієї комбінації, визначаючи та зіставляючи рядки на основі значень, знайдених в одному або кількох спільних стовпцях між таблицями. Ці спільні стовпці часто слугують зв'язком між первинним ключем в одній таблиці та зовнішнім ключем в іншій, установлюючи зв'язки, визначені в схемі бази даних.
Примітка. Первинний ключ – це унікальний ідентифікатор для кожного запису в таблиці, що гарантує, що два рядки не мають однакового значення в цьому стовпці. Зовнішній ключ , з іншого боку, – це стовпець в одній таблиці, який посилається на первинний ключ в іншій таблиці, тим самим зв'язуючи дві таблиці.
Існує кілька "ароматів" з'єднань (INNER, , LEFTRIGHT, FULL OUTER, NATURAL), кожен з яких має дещо різні способи поєднання таблиць. Вони забезпечують контроль над тим, які рядки входять до набору результатів на основі присутності або відсутності відповідних значень у об'єднаних таблицях.
ВНУТРІШНЄ ПРИЄДНАННЯ
An INNER JOIN – один із найпоширеніших типів об'єднань SQL. Він об'єднує рядки з кількох таблиць на основі умови, яка визначає відповідні значення в спільному стовпці.
Під час INNER JOINвиконання , лише рядки, які задовольняють умову з обох таблиць, входять до набору результатів, ефективно відфільтрувавши всі незв'язані дані. Це ідеально підходить INNER JOIN для отримання пов'язаних відомостей, коли чітко визначено зв'язки між таблицями, наприклад замовлення клієнтів або призначення працівників.
SELECT orders.order_id, customers.customer_name, employees.first_name, employees.last_name
FROM sales.orders AS orders
INNER JOIN sales.customers AS customers ON orders.customer_id = customers.customer_id
INNER JOIN sales.employees AS employees ON orders.employee_id = employees.employee_id;
У наданому запиті використовуються кілька INNER JOIN операцій для отримання уніфікованого набору результатів, який містить відомості про orders, customersі employees.
Вона збігається customer_id з таблицею orders з відповідною customer_id таблицею customers , а employee_id в orders таблиці employee_id з таблицею employees . Як наслідок, запит виводить ідентифікатор кожного замовлення разом з іменами клієнтів і працівників, які беруть участь.