Існує три основних типи об’єднання SQLite.
- ХРЕСТ ПРИЄДНАЙТЕСЬ
- ВНУТРІШНЄ З'ЄДНАННЯ
- ЛІВО ВНЕШНЄ ПРИЄДНАННЯ
Цей підручник швидко проведе вас через ці об'єднання SQLite та покаже, як приєднати записи бази даних.
Почнемо з ВНУТРІШНЬОГО СПІЛКУВАННЯ, оскільки воно просте і створює основу для розуміння інших типів СПІЛКУВАННЯ.
1: ВНУТРІШНЄ ПРИЄДНАННЯ
INNER JOIN працює шляхом створення нової таблиці шляхом об'єднання значень зазначених таблиць. Починається з порівняння рядка в кожній таблиці та пошуку всіх відповідних пар для вказаного предиката. Потім він поєднує відповідні пари в один рядок.
Загальний синтаксис для INNER JOIN:
ВИБЕРІТЬ стовпчик (и) З таблиці1 ВНУТРІШНЄ ПІДКЛЮЧЕННЯ таблиці2 УВІМКАНО таблиці1.стовпець = таблиця2.колонка;Давайте розглянемо операцію JOIN, щоб проілюструвати, як це працює.
Припустимо, у вас є таблиця, що називається користувачами, з полями: ідентифікатор, ім'я, вік, зразок мови SQL-запит для створення таблиці знаходиться нижче:
СТВОРИТИ ТАБЛИЦЮ "користувачі" ("id" INTEGER NOT NULL,
"назва" ТЕКСТ НЕ ПУСТИЙ,
"вік" ЦІЛИЙ НЕ ПУСТИЙ,
"мовний" ТЕКСТ,
ПОЧАТКОВИЙ КЛЮЧ ("АВТОМОБІЛЬ")
);
У нас також є інша таблиця, яка називається рядками із полями id та запитом role-SQL, поданим нижче:
СТВОРИТИ ТАБЛИЦЮ "Ролі" ("id" INTEGER NOT NULL,
"рольовий" ТЕКСТ,
ПОЧАТКОВИЙ КЛЮЧ ("АВТОМОБІЛЬ")
)
Тепер ми можемо запустити операцію SQLite INNER JOIN, використовуючи запит, показаний нижче:
ВИБІР користувачів.id, користувачі.ім'я, Ролі.роль ВІД ВНУТРІШНЬОГО ПРИЄДНАННЯ Ролі ВІД користувачів.id = Ролі.id;Наведений вище запит призведе до таблиці, показаної нижче:
2: ХРЕСТОВЕ ПРИЄДНАННЯ
Інший тип SQL JOIN - це ХРЕСТОВЕ ПРИЄДНАННЯ. Цей тип відповідає кожному рядку з першої таблиці кожному рядку другої таблиці. Подумайте про це як про декартовий продукт, оскільки результати - це набір рядків із таблиці 1, що відповідає кожному рядку таблиці 2. Наприклад, якщо table1 має (a) рядки, а table2 має (b) рядки, отримана таблиця матиме * b рядок.
ПРИМІТКА: Будьте обережні, використовуючи перехресні з’єднання, оскільки вони можуть призвести до величезних наборів таблиць.
Загальний синтаксис перехресного приєднання:
ВИБЕРІТЬ стовпець (я) З таблиці1 ПЕРЕКЛЮЧЕННЯ таблиці2;Розглянемо перехресне з’єднання з таблиці користувача з усіма рядками таблиці ролей. Розглянемо SQL-запит нижче:
ВИБЕРІТЬ * ВІД користувачів РЕЖИМИ ПРИЄДНАННЯ;Запуск вищезазначеного запиту призведе до таблиці, як показано нижче:
3: ЛІВЕ ВНЕШНЄ ПРИЄДНАННЯ
Остаточне приєднання, яке ми розглянемо, - це ВНЕШНЄ ПРИЄДНАННЯ. OUTER JOIN - це продовження ВНУТРІШНЬОГО СПІЛКУВАННЯ. Як і ВНУТРІШНЄ приєднання, ми виражаємо це на таких умовах, як УВІМКНЕНО, НЕЙТРАЛЬНЕ та ВИКОРИСТАННЯ. Також добре зауважити, що SQL визначає три типи ВНІШНІХ СПОСІБ: лівий, правий і повний, але SQLite підтримує лише ЛІВО.
LEFT зовнішнє JOIN повертає всі рядки з LEFT таблиці, вказані в умові, і лише ті рядки з інших таблиць, де об'єднана умова є істинною.
Розглянемо наступний запит.
ВИБІР користувачів.id, користувачі.ім'я, ролі.роль, користувачі.мова ВІД користувачів ВЛІВО ЗОВНІШНЄ ПРИЄДНАННЯ Ролі в користувачах.id = Ролі.id;Наведений вище запит призведе до таблиці, показаної нижче:
Висновок
Цей підручник проілюстрував, як виконувати з’єднання SQL у SQLite та створювати нові таблиці зі зміненою інформацією. Добре продовжувати експериментувати з SQL JOIN, оскільки вони дуже корисні при роботі з базами даних.
Дякую за читання!