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