Database
 sql >> Base de Dados >  >> RDS >> Database

Junções SQL


As junções são uma ferramenta muito poderosa. Lembre-se da álgebra relacional do módulo de introdução do banco de dados?

As junções são álgebra relacional aplicada .

Suponha que você tenha 2 tabelas, people e 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
);

Adicionamos alguns dados:
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');

Agora digamos que queremos correlacionar as duas tabelas, porque a polícia parou Roger dirigindo, parece jovem e quer saber sua idade a partir de seu banco de dados.

Roger é meu cachorro, mas vamos supor que cachorros possam dirigir carros.

Podemos criar uma junção com esta sintaxe:
SELECT age FROM people JOIN cars ON people.name = cars.owner WHERE cars.model='Mustang';

Retornaremos este resultado:
 age 
-----
   8

O que está acontecendo? Estamos juntando as duas tabelas carros em duas colunas específicas:name das people tabela e owner dos cars tabela.

As junções são um tópico que pode crescer em complexidade porque existem muitos tipos diferentes de junções que você pode usar para fazer coisas mais sofisticadas com várias tabelas, mas aqui está o exemplo mais básico.