SQLite

Як приєднати таблиці в SQLite

Як приєднати таблиці в SQLite
Іноді при роботі з базами даних нам може знадобитися об'єднати записи з таблиць у базі даних. У цьому випадку ми можемо використовувати оператор SQL JOIN, який поєднує зазначені поля, використовуючи загальні значення в кожному полі.

Існує три основних типи об’єднання SQLite.

  1. ХРЕСТ ПРИЄДНАЙТЕСЬ
  2. ВНУТРІШНЄ З'ЄДНАННЯ
  3. ЛІВО ВНЕШНЄ ПРИЄДНАННЯ

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

Дякую за читання!

Кращі програми для картографування геймпадів для Linux
Якщо ви любите грати в ігри на Linux із геймпадом замість типової системи введення клавіатури та миші, є кілька корисних програм для вас. Багато ігор ...
Корисні інструменти для геймерів Linux
Якщо ви любите грати в ігри на Linux, швидше за все, ви, можливо, використовували додатки та утиліти, такі як Wine, Lutris та OBS Studio, щоб покращит...
HD Remastered Games для Linux, які раніше ніколи не випускали Linux
Багато розробників і видавців ігор випускають HD-ремастер старих ігор, щоб продовжити життя франшизи. Будь ласка, шанувальники просять сумісність із с...