Огляд типів приєднань до SQL Server
Застереження приєднання, ключове слово JOIN об'єднує кілька таблиць в один набір результатів. У пункті FROM повинні бути включені всі таблиці. Розділяє кожну таблицю комою WHERE, яка зазвичай включена.
Ми можемо включити булевий вираз, який повертає істинне або хибне, і ці вирази можуть посилатися на стовпці у всіх таблицях.
Типи приєднань до SQL Server
Існують різні типи приєднань
- КРОВИЙ ПРИЄДНАЙТЕСЬ
- ВНУТРІШНЄ З'ЄДНАННЯ
- ЗОВНІШНЕ ПРИЄДНАЙТЕСЬ
- ЛІВНІЙ ЗОВНІШНІ ПРИЄДНАЙТЕСЬ
- ПРАВО ПРИЄДНАЙТЕСЬ
- ПОВНОГО ПРИЄДНАЙТЕСЬ
- САМО ПРИЄДНАЙТЕСЬ
Давайте розберемося в деталях кожного з цих приєднань: -
1) Перехресне з'єднання
- Це найпростіший ПРИЄДНАЙТЕСЬ
- Він повертає всі рядки з обох таблиць
- Застереження "ДЕ"
- Це також найменш корисне
- Це дуже неефективно
- Це створює декартовий продукт
- CROSS мається на увазі
Приклад
Тож усі з першої таблиці з кожним фрагментом даних з другої таблиці не намагаються будь-якого зіставлення, так що це те, що ви не хочете робити.
Шукайте пункт ВІД, де у вас є декілька таблиць, а в пункті WHERE немає.
2) Внутрішня приєднання
Вихід із запиту:
Ваш початковий і останній рядки мають значення координування, пов'язані з C2. Центральні ряди зазвичай не зустрічаються. Останній кінцевий результат містить усі значення як через початковий, так і в останній рядки, але не містять середнього рядка, що не відповідає.
- Це найбільш типова ПРИЄДНАЙТЕСЬ
- Це підкреслювало реляційний характер бази даних
- Це дозволяє нам співставити значення стовпця в одній із таблиць зі значенням стовпця в іншій таблиці.
- Первинний ключ в одній із таблиць та зовнішній ключ в одній з інших таблиць.
Приклад
Ось p.person_id - наш основний ключ у таблиці персоналу,
email_address_person_id - наш зовнішній ключ у таблиці адрес електронної пошти.
Давайте подивимось на таблицю людей
У нас є ці чотири ряди. А потім усі відповідники всередині таблиці електронних адрес.
Отже, врешті-решт, слід отримати трьох людей, бо у нас є людина Шеннон, яка не має електронної адреси
Вихід із запиту:
Таким чином, ми отримуємо дані лише там, де в кожній із таблиць є відповідність між двома стовпцями
3) Зовнішнє приєднання
- INNER JOIN не має значення NULL
- ЗОВНІШНЕ ПРИЄДНАННЯ працює навіть тоді, коли у другій таблиці немає відповідності.
- Стовпців NULL, якщо у другій таблиці немає відповідності
- ПОВНОГО ПРИЄДНАННЯ поверніть усі об'єднані рядки
- NULL, коли в жодній таблиці немає відповідності
а) Залишилося зовнішнє з'єднання
Вихід із запиту: Ви як початкові, так і в останніх рядках мають значення координування, пов'язані з C2. Центральні ряди зазвичай не зустрічаються. Останній кінцевий результат міг би зберегти всі рядки першої таблиці, але фактично залишить невідповідним рядок через другу таблицю.
- Ще одна приєднана NULL
- Усі рядки з лівого боку будуть повернуті
- NULL для невідповідного столу правої сторони
Приклад
Вихід із запиту:
Ви помічаєте, що в таблиці Person є один рядок, який не має значень у таблиці адрес електронної пошти. Тож ЛІВНІЙ ЗОВНІЙ ПРИЄДНАЙТЕ нам.
б) Право Зовнішнє приєднання
Вихід із запиту:
Ви як початкові, так і в останніх рядках мають значення координування, пов'язані з C2. Центральні ряди зазвичай не зустрічаються. Останній кінцевий результат міг би зберігати всі рядки другої таблиці, але насправді не залишиться незрівняним рядком через першу таблицю.
- Навпроти СПІЛЬНОГО ПРИЄДНАННЯ ЛІВО
- Усі рядки з правого боку будуть повернуті
- NULL для таблиці, що не відповідає лівій стороні
Приклад Вихід із запиту:
Ми отримуємо три результати. Ось наш результат ПРАВИЛЬНИЙ ПРИЄДНАЙТЕСЬ, де у таблиці правої таблиці є рядок із таблиці адрес електронної пошти, який не має відповідного рядка.
4) Повне зовнішнє приєднання
Приклад
Вихід із запиту:
Ми можемо поєднати результат ЛІВНЕШЕГО ПРИЄДНУТЬСЯ до ПРИЄДНАННЯ ВЛІШО та ПРАВО
5) Самозаєднання
- SELF - це не ключове слово. Це просто ця ідея, що ви можете скласти стіл на собі
- Дивно, але іноді корисно
- Немає спеціального синтаксису
- Та сама таблиця ліворуч та праворуч ПРИЄДНАЙТЕСЬ
- Корисно, коли таблиця містить ієрархічні дані
Приклад
ВИБІР *
ВІД замовлень
ПРИЄДНАЙТЕ підписки
ON замовлення.subscription_id = subscriptions.subscription_id;
Ми отримуємо таблицю замовлень та таблицю підписок та приєднуємось до таблиці, використовуючи SELECT всі стовпці.
Щоб отримати результат.
Висновок:
Приєднання - це те, що ми реально змушуємо реалізувати реляційну модель. Реляційна модель полягає в тому, щоб дані були розділені, нормалізовані в декілька таблиць, але в змозі знову їх об'єднати, коли ми хочемо побачити ці відносини. І різні види приєднань дозволяють нам робити це дещо по-різному.
Рекомендовані статті
Це було керівництвом щодо типів об'єднань на SQL-сервері. Тут ми обговорюємо огляд та типи приєднань до SQL з їх прикладами. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -
- Що таке SQL Server?
- Кар'єра в SQL Server
- Навчання PL SQL
- Оператори MySQL
- Топ 6 типів приєднань до MySQL з прикладами