Съединенията са много мощен инструмент. Помните ли релационна алгебра от интро модула на базата данни?
Съединенията са приложна релационна алгебра .
Да предположим, че имате 2 маси, people
и cars
:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL PRIMARY KEY
);
CREATE TABLE cars (
brand CHAR(20) NOT NULL,
model CHAR(20) NOT NULL,
owner CHAR(20) NOT NULL PRIMARY KEY
);
Добавяме някои данни:
INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (8, 'Roger');
INSERT INTO cars VALUES ('Ford', 'Fiesta', 'Flavio');
INSERT INTO cars VALUES ('Ford', 'Mustang', 'Roger');
Сега кажете, че искаме да съпоставим двете таблици, защото полицията спря Роджър да шофира, изглежда млад и иска да разбере възрастта му от тяхната база данни.
Роджър е моето куче, но да предположим, че кучетата могат да карат коли.
Можем да създадем присъединяване с този синтаксис:
SELECT age FROM people JOIN cars ON people.name = cars.owner WHERE cars.model='Mustang';
Ще върнем този резултат:
age
-----
8
Какво се случва? Обединяваме двете маси cars в две конкретни колони:name
от people
таблица и owner
от cars
таблица.
Съединенията са тема, която може да се усложни, тъй като има много различни видове обединения, които можете да използвате, за да правите по-фантастични неща с множество таблици, но ето най-основният пример.