Spojení jsou velmi mocným nástrojem. Pamatujete si relační algebru z úvodního modulu databáze?
Spoje jsou aplikovaná relační algebra .
Předpokládejme, že máte 2 stoly, people
a 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
);
Přidáváme některá data:
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');
Nyní řekněme, že chceme tyto dvě tabulky porovnat, protože policie zastavila Rogera řídit, vypadá mladě a chce znát jeho věk ze své databáze.
Roger je můj pes, ale předpokládejme, že psi umí řídit auta.
Můžeme vytvořit připojení s touto syntaxí:
SELECT age FROM people JOIN cars ON people.name = cars.owner WHERE cars.model='Mustang';
Tento výsledek získáme zpět:
age
-----
8
Co se děje? Spojujeme dva tabulkové vozy ve dvou specifických sloupcích:name
od people
tabulka a owner
z cars
tabulka.
Spojení je téma, které může narůstat ve složitosti, protože existuje mnoho různých druhů spojení, které můžete použít k tomu, abyste dělali šikovnější věci s více stoly, ale zde je nejzákladnější příklad.