SlideShare uma empresa Scribd logo
MySQL Workbench – Junções
Profª. Marlene da Silva Maximiano de Oliveira
& Profª. Alessandra Aparecida da Silva
Junções - Join
• Introdução à junções
• Em um banco de dados podemos ter duas ou mais tabelas relacionadas. É
comum ao elaborarmos uma consulta termos a necessidade de trazer dados
de diferentes tabelas. Para criarmos esta seleção devemos definir os critérios
de agrupamento para trazer estes dados. Estes critérios são chamados de
Junções. Uma junção de tabelas cria uma pseudo-tabela derivada de duas ou
mais tabelas de acordo com as regras especificadas, e que são parecidas com
as regras da teoria dos conjuntos.
Junção de produto cartesiano
• Uma junção de produto cartesiano é uma junção entre duas tabelas que
origina uma terceira tabela constituída por todos os elementos da primeira
combinadas com todos os elementos da segunda.
Para trazer apenas os campos necessários da
consulta:
• No SELECT utilizamos em vez do nome do campo simples, o
nome_tabela.nome_campo;
• Em FROM utilizamos os nomes das tabelas que possuem os campos que
queremos trazer;
• Em WHERE determinamos a dependência das tabelas, lembrando que a
relação entre as tabelas é efetuada pela chave estrangeira. Desta forma o
WHERE sempre especifica as chaves estrangeiras que ligam as tabelas.
Como exemplo, vamos imaginar que possuímos duas
tabelas relacionadas: Cliente e Profissão. A tabela Profissão
contém o código e profissão armazenado:
CREATE TABLE Profissao (
Cod_Profissao INT NOT NULL AUTO_INCREMENT,
Nome_Profissao VARCHAR (60) NOT NULL,
PRIMARY KEY (Cod_Profissao) );
A tabela Cliente armazena os dados pessoais do Cliente:
CREATE TABLE Cliente (
Cod_Cliente INT NOT NULL AUTO_INCREMENT,
Nome_Cliente VARCHAR (60) NOT NULL,
Data_Nascimento DATE,
Telefone CHAR (9),
Cod_Profissao INT,
PRIMARY KEY (Cod_Cliente) ,
FOREIGN KEY (Cod_Profissao)
REFERENCES Profissao(Cod_Profissao));
Agora inserimos dados nestas tabelas. Em
Profissao vamos inserir três profissões básicas:
INSERT INTO Profissao (Nome_Profissao) VALUES ('Programador');
NSERT INTO Profissao (Nome_Profissao) VALUES ('Analista de BD');
INSERT INTO Profissao (Nome_Profissao) VALUES ('Suporte');
INSERT INTO Profissao (Nome_Profissao) VALUES (‘Estagiario’);
Possuímos agora três profissões com respectivos códigos.
Agora vamos inserir dados na tabela Cliente:
INSERT INTO Cliente (Nome_Cliente, Data_Nascimento, Telefone,
Cod_Profissao) VALUES ('João Pereira','1980-09-20','3456-7890',1);
INSERT INTO Cliente (Nome_Cliente, Data_Nascimento, Telefone,
Cod_Profissao) VALUES ('Maria Barros','1972-01-22','3456-7891',2);
INSERT INTO Cliente (Nome_Cliente, Data_Nascimento, Telefone,
Cod_Profissao) VALUES ('José Mendes','1983-04-29','3456-7892',3);
INSERT INTO Cliente (Nome_Cliente, Data_Nascimento, Telefone)
VALUES ('Rogerio Cavalcante','1990-01-12','3456-7894');
Criar também a tabela de pedido
CREATE TABLE Pedido (
Num_Pedido INT NOT NULL AUTO_INCREMENT,
Cod_Cliente int,
Total_Pedido decimal (10,2)
PRIMARY KEY (Num_Pedido) ,
FOREIGN KEY (Cod_Cliente)
REFERENCES Cliente(Cod_Cliente));
Inserir dados
INSERT INTO Pedido (Num_Pedido, Cod_Cliente, Total_Pedido)
VALUES (203, 1, 800);
INSERT INTO Pedido (Num_Pedido, Cod_Cliente, Total_Pedido)
VALUES (204,2, 900);
INSERT INTO Pedido (Num_Pedido, Cod_Cliente, Total_Pedido)
VALUES (203, 3, 1200);
Para visualizarmos todos os dados contidos nas duas
tabelas após a inserção dos dados, podemos utilizar:
SELECT * FROM Cliente, Profissao;
Porém, se quisermos trazer apenas o Nome do Cliente e o seu Cargo, podemos
fazer uma junção de produto cartesiano:
Nesta seleção, trazemos um campo de cada tabela após o SELECT,
mencionamos as tabelas de quais elas se originam no FROM, e no WHERE
especificamos a ligação entre as tabelas. Note que Cliente.Profissao é a chave
estrangeira da tabela Cliente, que referencia diretamente a chave primária da
tabela Profissao.
Junção Interna (Inner Join)
Uma Junção Interna é caracterizada por uma seleção que retorna apenas os
dados que atendem às condições de junção, isto é, quais linhas de uma tabela se
relacionam com as linhas de outras tabelas. Para isto utilizamos a cláusula ON,
que é semelhante à cláusula WHERE.
Podemos especificar duas formas diferentes de expressar esta junção: a explícita
utiliza a palavra JOIN, enquanto a implícita utiliza ',' para separar as tabelas a
combinar na cláusula FROM do SELECT. Então sempre é gerado o produto
cruzado do qual são selecionadas as combinações que cumpram a cláusula
WHERE.
Junção Interna (Inner Join)
É necessário ter algum cuidado quando se combinam colunas com valores
nulos (NULL), já que o valor nulo não se combina com outro valor, ou outro
valor nulo, exceto quando se agregam predicados como IS NULL ou IS NOT
NULL.
Como exemplo, a consulta seguinte traz todos os registros da tabela Cliente e
encontra todas as combinações com a tabela Profissao. A cláusula JOIN
compara os valores da coluna Profissao de Cliente com a coluna Codigo da
Profissao. Quando não existe aos dados não atendem as condições
especificadas, eles não são retornados.
Junção Interna (Inner Join)
SELECT Cliente.nome_cliente,Pedido.cod_cliente,Pedido.num_pedido
FROM Cliente INNER JOIN Pedido
ON Cliente.Cod_cliente = Pedido.Cod_cliente;
Junção Externa (Outer Join)
Uma Junção Externa é uma seleção que não requer que os registros de uma
tabela possuam registros equivalentes em outra. O registro é mantido na
pseudo-tabela se não existe outro registro que lhe corresponda. Este tipo de
junção se subdivide dependendo da tabela do qual admitiremos os registros que
não possuem correspondência: a tabela esquerda, a direita ou ambas.
Left Outer Join
O resultado desta seleção sempre contém todos os registros da tabela esquerda (isto é,
a primeira tabela mencionada na consulta), mesmo quando não exista registros
correspondentes na tabela direita. Desta forma, esta seleção retorna todos os valores
da tabela esquerda com os valores da tabela direita correspondente, ou quando não há
correspondência retorna um valor NULL.
Se por exemplo inserimos na tabela Cliente um Cliente que não possua valor em seu
campo Profissao, ou possua um valor que não tem correspondente no Codigo na
tabela Profissão, e efetuarmos a seleção com LEFT OUTER JOIN a seleção será
efetuada trazendo todos os dados da tabela Cliente, e os correspondentes na tabela
Profissao, e quando não houver estes correspondentes, trará o valor NULL.
Exemplo
SELECT DISTINCT * FROM Cliente
LEFT OUTER JOIN Profissao
ON Cliente.Cod_Profissao=Profissao.Cod_profissao;
Right Outer Join
Esta operação é inversa à anterior e retorna sempre todos os registros da tabela
à direita (a segunda tabela mencionada na consulta), mesmo se não existir
registro correspondente na tabela à esquerda. Nestes casos, o valor NULL é
retornado quando não há correspondência.
Como exemplo, imaginemos que possuímos diversas Profissões com
respectivos códigos que não possuem correspondentes na tabela Clientes. Esta
consulta traz todas estas Profissões mesmo que não haja esta correspondência:
Exemplo
SELECT * FROM Cliente
RIGHT OUTER JOIN Profissao
ON Cliente.Cod_Profissao = Profissao.Cod_Profissao;
Full Outer Join (Não funcionou no Workbench)
Esta operação apresenta todos os dados das tabelas à esquerda e à direita,
mesmo que não possuam correspondência em outra tabela. A tabela combinada
possuirá assim todos os registros de ambas as tabelas e apresentará valores
nulos para os registros sem correspondência.
Exemplo - (Não funcionou no Workbench)
SELECT * FROM Cliente
FULL OUTER JOIN Profissao
ON Cliente.Cod_Profissao=Profissao.Cod_Profissao;
Exemplo 2
SELECT * FROM Cliente LEFT JOIN Profissao
ON Cliente.Cod_Profissao=Profissao.Cod_Profissao
UNION
SELECT * FROM Cliente
RIGHT JOIN Profissao
ON Cliente.Cod_Profissao=Profissao.Cod_profissao
WHERE Cliente.Cod_Profissao IS NULL;

Mais conteúdo relacionado

Mais procurados

Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
Moises Omena
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Leinylson Fontinele
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
Anderson Sanches
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
vini_campos
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
Thiago Freitas
 
Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)
Mario Sergio
 
A Linguagem UML
A Linguagem UMLA Linguagem UML
A Linguagem UML
Nécio de Lima Veras
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
Rademaker Siena
 
Aprendendo a Usar o Netbeans
Aprendendo a Usar o NetbeansAprendendo a Usar o Netbeans
Aprendendo a Usar o Netbeans
Tiago Antônio da Silva
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysql
Arley Rodrigues
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Janynne Gomes
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
Mauricio Cesar Santos da Purificação
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
Aricelio Souza
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
Cris Fidelix
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL Workbench
Centro Paula Souza
 
SI - SAD - Sistemas de Arquivos Distribuídos
SI - SAD  - Sistemas de Arquivos DistribuídosSI - SAD  - Sistemas de Arquivos Distribuídos
SI - SAD - Sistemas de Arquivos Distribuídos
Frederico Madeira
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
Jorge Ávila Miranda
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
Igor Alves
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
Gercélia Ramos
 

Mais procurados (20)

Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)
 
A Linguagem UML
A Linguagem UMLA Linguagem UML
A Linguagem UML
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Aprendendo a Usar o Netbeans
Aprendendo a Usar o NetbeansAprendendo a Usar o Netbeans
Aprendendo a Usar o Netbeans
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysql
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL Workbench
 
SI - SAD - Sistemas de Arquivos Distribuídos
SI - SAD  - Sistemas de Arquivos DistribuídosSI - SAD  - Sistemas de Arquivos Distribuídos
SI - SAD - Sistemas de Arquivos Distribuídos
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 

Semelhante a 12 SQL - Junções / Join

Sql junções
Sql junçõesSql junções
Sql junções
Reuel Lopes
 
Aula 12 banco de dados
Aula 12   banco de dadosAula 12   banco de dados
Aula 12 banco de dados
Jorge Ávila Miranda
 
Aula 23 - Excel 2010
Aula 23 - Excel 2010Aula 23 - Excel 2010
Aula 23 - Excel 2010
Renan Oliveira Baptista
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
Rodrigo Kiyoshi Saito
 
Excel Intermediário
Excel IntermediárioExcel Intermediário
Excel Intermediário
aprcds
 
Um pouco sobre sql
Um pouco sobre sqlUm pouco sobre sql
Um pouco sobre sql
Ricardo Kovalski Cruz
 
At00 apostila sql
At00   apostila sqlAt00   apostila sql
At00 apostila sql
Williams Gomes da Silva
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
Charleston Anjos
 
Inner Join
Inner JoinInner Join
Inner Join
Danilo Alves
 
06 Trabalhando com registros
06 Trabalhando com registros06 Trabalhando com registros
06 Trabalhando com registros
Centro Paula Souza
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
Alexandre Silva
 
Revisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.pptRevisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.ppt
a08008
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
Marcos Thomaz
 
Treinamento Excel Avançado
Treinamento Excel AvançadoTreinamento Excel Avançado
Treinamento Excel Avançado
Luis Dalmoneki
 
excelintermedirio-090723125852-phpapp02.ppt
excelintermedirio-090723125852-phpapp02.pptexcelintermedirio-090723125852-phpapp02.ppt
excelintermedirio-090723125852-phpapp02.ppt
elainesanchoparaiso
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuação
Carlos Santos
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
André Luiz
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
julianaveregue
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
Jorge Ávila Miranda
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
julianaveregue
 

Semelhante a 12 SQL - Junções / Join (20)

Sql junções
Sql junçõesSql junções
Sql junções
 
Aula 12 banco de dados
Aula 12   banco de dadosAula 12   banco de dados
Aula 12 banco de dados
 
Aula 23 - Excel 2010
Aula 23 - Excel 2010Aula 23 - Excel 2010
Aula 23 - Excel 2010
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
 
Excel Intermediário
Excel IntermediárioExcel Intermediário
Excel Intermediário
 
Um pouco sobre sql
Um pouco sobre sqlUm pouco sobre sql
Um pouco sobre sql
 
At00 apostila sql
At00   apostila sqlAt00   apostila sql
At00 apostila sql
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
 
Inner Join
Inner JoinInner Join
Inner Join
 
06 Trabalhando com registros
06 Trabalhando com registros06 Trabalhando com registros
06 Trabalhando com registros
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Revisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.pptRevisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.ppt
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Treinamento Excel Avançado
Treinamento Excel AvançadoTreinamento Excel Avançado
Treinamento Excel Avançado
 
excelintermedirio-090723125852-phpapp02.ppt
excelintermedirio-090723125852-phpapp02.pptexcelintermedirio-090723125852-phpapp02.ppt
excelintermedirio-090723125852-phpapp02.ppt
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuação
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
 

Mais de Centro Paula Souza

Ds aula 01 - Introdução ao Visual Studio CSharp - Modo Visual
Ds aula 01 - Introdução ao Visual Studio CSharp - Modo VisualDs aula 01 - Introdução ao Visual Studio CSharp - Modo Visual
Ds aula 01 - Introdução ao Visual Studio CSharp - Modo Visual
Centro Paula Souza
 
11 SQL - Funções de string e matemática
11 SQL - Funções de string e matemática11 SQL - Funções de string e matemática
11 SQL - Funções de string e matemática
Centro Paula Souza
 
10 SQL - Funções de agregação
10 SQL - Funções de agregação10 SQL - Funções de agregação
10 SQL - Funções de agregação
Centro Paula Souza
 
09 SQL - Trabalhando com campo do tipo data
09 SQL - Trabalhando com campo do tipo data09 SQL - Trabalhando com campo do tipo data
09 SQL - Trabalhando com campo do tipo data
Centro Paula Souza
 
18 CSS - Trabalhando com Links
18 CSS - Trabalhando com Links18 CSS - Trabalhando com Links
18 CSS - Trabalhando com Links
Centro Paula Souza
 
17 CSS - layouts de textos
17 CSS - layouts de textos17 CSS - layouts de textos
17 CSS - layouts de textos
Centro Paula Souza
 
16 CSS Cores e Fundos
16 CSS Cores e Fundos16 CSS Cores e Fundos
16 CSS Cores e Fundos
Centro Paula Souza
 
15 CSS - Trabalhando com fontes
15 CSS - Trabalhando com fontes15 CSS - Trabalhando com fontes
15 CSS - Trabalhando com fontes
Centro Paula Souza
 
14 CSS Introdução
14 CSS Introdução14 CSS Introdução
14 CSS Introdução
Centro Paula Souza
 
07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico
Centro Paula Souza
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo Lógico
Centro Paula Souza
 
05 Modelagem de banco de dados: Modelo Conceitual
05  Modelagem de banco de dados: Modelo Conceitual05  Modelagem de banco de dados: Modelo Conceitual
05 Modelagem de banco de dados: Modelo Conceitual
Centro Paula Souza
 
08 Trabalhando com mais de uma tabela (Relacionamento)
08 Trabalhando com mais de uma tabela (Relacionamento)08 Trabalhando com mais de uma tabela (Relacionamento)
08 Trabalhando com mais de uma tabela (Relacionamento)
Centro Paula Souza
 
07 Consultando os dados de uma tabela
07 Consultando os dados de uma tabela07 Consultando os dados de uma tabela
07 Consultando os dados de uma tabela
Centro Paula Souza
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos
Centro Paula Souza
 
09 Java Script - As formas de usar
09  Java Script  - As formas de usar09  Java Script  - As formas de usar
09 Java Script - As formas de usar
Centro Paula Souza
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulário
Centro Paula Souza
 
12 Java Script - Trabalhando com datas
12 Java Script  -  Trabalhando com datas12 Java Script  -  Trabalhando com datas
12 Java Script - Trabalhando com datas
Centro Paula Souza
 
11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos
Centro Paula Souza
 
08 Java Script Introdução - Teoria
08 Java Script   Introdução  - Teoria08 Java Script   Introdução  - Teoria
08 Java Script Introdução - Teoria
Centro Paula Souza
 

Mais de Centro Paula Souza (20)

Ds aula 01 - Introdução ao Visual Studio CSharp - Modo Visual
Ds aula 01 - Introdução ao Visual Studio CSharp - Modo VisualDs aula 01 - Introdução ao Visual Studio CSharp - Modo Visual
Ds aula 01 - Introdução ao Visual Studio CSharp - Modo Visual
 
11 SQL - Funções de string e matemática
11 SQL - Funções de string e matemática11 SQL - Funções de string e matemática
11 SQL - Funções de string e matemática
 
10 SQL - Funções de agregação
10 SQL - Funções de agregação10 SQL - Funções de agregação
10 SQL - Funções de agregação
 
09 SQL - Trabalhando com campo do tipo data
09 SQL - Trabalhando com campo do tipo data09 SQL - Trabalhando com campo do tipo data
09 SQL - Trabalhando com campo do tipo data
 
18 CSS - Trabalhando com Links
18 CSS - Trabalhando com Links18 CSS - Trabalhando com Links
18 CSS - Trabalhando com Links
 
17 CSS - layouts de textos
17 CSS - layouts de textos17 CSS - layouts de textos
17 CSS - layouts de textos
 
16 CSS Cores e Fundos
16 CSS Cores e Fundos16 CSS Cores e Fundos
16 CSS Cores e Fundos
 
15 CSS - Trabalhando com fontes
15 CSS - Trabalhando com fontes15 CSS - Trabalhando com fontes
15 CSS - Trabalhando com fontes
 
14 CSS Introdução
14 CSS Introdução14 CSS Introdução
14 CSS Introdução
 
07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo Lógico
 
05 Modelagem de banco de dados: Modelo Conceitual
05  Modelagem de banco de dados: Modelo Conceitual05  Modelagem de banco de dados: Modelo Conceitual
05 Modelagem de banco de dados: Modelo Conceitual
 
08 Trabalhando com mais de uma tabela (Relacionamento)
08 Trabalhando com mais de uma tabela (Relacionamento)08 Trabalhando com mais de uma tabela (Relacionamento)
08 Trabalhando com mais de uma tabela (Relacionamento)
 
07 Consultando os dados de uma tabela
07 Consultando os dados de uma tabela07 Consultando os dados de uma tabela
07 Consultando os dados de uma tabela
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos
 
09 Java Script - As formas de usar
09  Java Script  - As formas de usar09  Java Script  - As formas de usar
09 Java Script - As formas de usar
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulário
 
12 Java Script - Trabalhando com datas
12 Java Script  -  Trabalhando com datas12 Java Script  -  Trabalhando com datas
12 Java Script - Trabalhando com datas
 
11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos
 
08 Java Script Introdução - Teoria
08 Java Script   Introdução  - Teoria08 Java Script   Introdução  - Teoria
08 Java Script Introdução - Teoria
 

Último

UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
Manuais Formação
 
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptxSlides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
LuizHenriquedeAlmeid6
 
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
Manuais Formação
 
ATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junhoATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junho
Crisnaiara
 
Curativo de cateter venoso central na UTI.pdf
Curativo de cateter venoso central na UTI.pdfCurativo de cateter venoso central na UTI.pdf
Curativo de cateter venoso central na UTI.pdf
BiancaCristina75
 
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdfAula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Marília Pacheco
 
Atividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docxAtividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docx
MARCELARUBIAGAVA
 
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇOPALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
ARIADNEMARTINSDACRUZ
 
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdfUFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
Manuais Formação
 
Exercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica BasicaExercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica Basica
ElinarioCosta
 
Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
samucajaime015
 
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
fran0410
 
O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4
DouglasMoraes54
 
A Núbia e o Reino De Cuxe- 6º ano....ppt
A Núbia e o Reino De Cuxe- 6º ano....pptA Núbia e o Reino De Cuxe- 6º ano....ppt
A Núbia e o Reino De Cuxe- 6º ano....ppt
WilianeBarbosa2
 
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptxPsicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
TiagoLouro8
 
Gênero Textual sobre Crônicas, 8º e 9º
Gênero Textual sobre Crônicas,  8º e  9ºGênero Textual sobre Crônicas,  8º e  9º
Gênero Textual sobre Crônicas, 8º e 9º
sjcelsorocha
 
Roteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptxRoteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptx
pamellaaraujo10
 
filosofia e Direito- É a teoria que explica como a sociedade se organizou co...
filosofia e Direito- É a teoria que explica como a sociedade se organizou  co...filosofia e Direito- É a teoria que explica como a sociedade se organizou  co...
filosofia e Direito- É a teoria que explica como a sociedade se organizou co...
SidneySilva523387
 
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
ProfessoraTatianaT
 
Slide de biologia aula2 2 bimestre no ano de 2024
Slide de biologia aula2  2 bimestre no ano de 2024Slide de biologia aula2  2 bimestre no ano de 2024
Slide de biologia aula2 2 bimestre no ano de 2024
vinibolado86
 

Último (20)

UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
 
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptxSlides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
 
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
 
ATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junhoATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junho
 
Curativo de cateter venoso central na UTI.pdf
Curativo de cateter venoso central na UTI.pdfCurativo de cateter venoso central na UTI.pdf
Curativo de cateter venoso central na UTI.pdf
 
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdfAula Aberta_Avaliação Digital no ensino basico e secundário.pdf
Aula Aberta_Avaliação Digital no ensino basico e secundário.pdf
 
Atividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docxAtividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docx
 
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇOPALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
 
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdfUFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdf
 
Exercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica BasicaExercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica Basica
 
Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
Aula de fundamentos de Programação Orientada a Objeto na linguagem de program...
 
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
 
O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4
 
A Núbia e o Reino De Cuxe- 6º ano....ppt
A Núbia e o Reino De Cuxe- 6º ano....pptA Núbia e o Reino De Cuxe- 6º ano....ppt
A Núbia e o Reino De Cuxe- 6º ano....ppt
 
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptxPsicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
 
Gênero Textual sobre Crônicas, 8º e 9º
Gênero Textual sobre Crônicas,  8º e  9ºGênero Textual sobre Crônicas,  8º e  9º
Gênero Textual sobre Crônicas, 8º e 9º
 
Roteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptxRoteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptx
 
filosofia e Direito- É a teoria que explica como a sociedade se organizou co...
filosofia e Direito- É a teoria que explica como a sociedade se organizou  co...filosofia e Direito- É a teoria que explica como a sociedade se organizou  co...
filosofia e Direito- É a teoria que explica como a sociedade se organizou co...
 
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
 
Slide de biologia aula2 2 bimestre no ano de 2024
Slide de biologia aula2  2 bimestre no ano de 2024Slide de biologia aula2  2 bimestre no ano de 2024
Slide de biologia aula2 2 bimestre no ano de 2024
 

12 SQL - Junções / Join

  • 1. MySQL Workbench – Junções Profª. Marlene da Silva Maximiano de Oliveira & Profª. Alessandra Aparecida da Silva
  • 2. Junções - Join • Introdução à junções • Em um banco de dados podemos ter duas ou mais tabelas relacionadas. É comum ao elaborarmos uma consulta termos a necessidade de trazer dados de diferentes tabelas. Para criarmos esta seleção devemos definir os critérios de agrupamento para trazer estes dados. Estes critérios são chamados de Junções. Uma junção de tabelas cria uma pseudo-tabela derivada de duas ou mais tabelas de acordo com as regras especificadas, e que são parecidas com as regras da teoria dos conjuntos.
  • 3. Junção de produto cartesiano • Uma junção de produto cartesiano é uma junção entre duas tabelas que origina uma terceira tabela constituída por todos os elementos da primeira combinadas com todos os elementos da segunda.
  • 4. Para trazer apenas os campos necessários da consulta: • No SELECT utilizamos em vez do nome do campo simples, o nome_tabela.nome_campo; • Em FROM utilizamos os nomes das tabelas que possuem os campos que queremos trazer; • Em WHERE determinamos a dependência das tabelas, lembrando que a relação entre as tabelas é efetuada pela chave estrangeira. Desta forma o WHERE sempre especifica as chaves estrangeiras que ligam as tabelas.
  • 5. Como exemplo, vamos imaginar que possuímos duas tabelas relacionadas: Cliente e Profissão. A tabela Profissão contém o código e profissão armazenado: CREATE TABLE Profissao ( Cod_Profissao INT NOT NULL AUTO_INCREMENT, Nome_Profissao VARCHAR (60) NOT NULL, PRIMARY KEY (Cod_Profissao) );
  • 6. A tabela Cliente armazena os dados pessoais do Cliente: CREATE TABLE Cliente ( Cod_Cliente INT NOT NULL AUTO_INCREMENT, Nome_Cliente VARCHAR (60) NOT NULL, Data_Nascimento DATE, Telefone CHAR (9), Cod_Profissao INT, PRIMARY KEY (Cod_Cliente) , FOREIGN KEY (Cod_Profissao) REFERENCES Profissao(Cod_Profissao));
  • 7. Agora inserimos dados nestas tabelas. Em Profissao vamos inserir três profissões básicas: INSERT INTO Profissao (Nome_Profissao) VALUES ('Programador'); NSERT INTO Profissao (Nome_Profissao) VALUES ('Analista de BD'); INSERT INTO Profissao (Nome_Profissao) VALUES ('Suporte'); INSERT INTO Profissao (Nome_Profissao) VALUES (‘Estagiario’);
  • 8. Possuímos agora três profissões com respectivos códigos. Agora vamos inserir dados na tabela Cliente: INSERT INTO Cliente (Nome_Cliente, Data_Nascimento, Telefone, Cod_Profissao) VALUES ('João Pereira','1980-09-20','3456-7890',1); INSERT INTO Cliente (Nome_Cliente, Data_Nascimento, Telefone, Cod_Profissao) VALUES ('Maria Barros','1972-01-22','3456-7891',2); INSERT INTO Cliente (Nome_Cliente, Data_Nascimento, Telefone, Cod_Profissao) VALUES ('José Mendes','1983-04-29','3456-7892',3); INSERT INTO Cliente (Nome_Cliente, Data_Nascimento, Telefone) VALUES ('Rogerio Cavalcante','1990-01-12','3456-7894');
  • 9. Criar também a tabela de pedido CREATE TABLE Pedido ( Num_Pedido INT NOT NULL AUTO_INCREMENT, Cod_Cliente int, Total_Pedido decimal (10,2) PRIMARY KEY (Num_Pedido) , FOREIGN KEY (Cod_Cliente) REFERENCES Cliente(Cod_Cliente));
  • 10. Inserir dados INSERT INTO Pedido (Num_Pedido, Cod_Cliente, Total_Pedido) VALUES (203, 1, 800); INSERT INTO Pedido (Num_Pedido, Cod_Cliente, Total_Pedido) VALUES (204,2, 900); INSERT INTO Pedido (Num_Pedido, Cod_Cliente, Total_Pedido) VALUES (203, 3, 1200);
  • 11. Para visualizarmos todos os dados contidos nas duas tabelas após a inserção dos dados, podemos utilizar: SELECT * FROM Cliente, Profissao; Porém, se quisermos trazer apenas o Nome do Cliente e o seu Cargo, podemos fazer uma junção de produto cartesiano: Nesta seleção, trazemos um campo de cada tabela após o SELECT, mencionamos as tabelas de quais elas se originam no FROM, e no WHERE especificamos a ligação entre as tabelas. Note que Cliente.Profissao é a chave estrangeira da tabela Cliente, que referencia diretamente a chave primária da tabela Profissao.
  • 12. Junção Interna (Inner Join) Uma Junção Interna é caracterizada por uma seleção que retorna apenas os dados que atendem às condições de junção, isto é, quais linhas de uma tabela se relacionam com as linhas de outras tabelas. Para isto utilizamos a cláusula ON, que é semelhante à cláusula WHERE. Podemos especificar duas formas diferentes de expressar esta junção: a explícita utiliza a palavra JOIN, enquanto a implícita utiliza ',' para separar as tabelas a combinar na cláusula FROM do SELECT. Então sempre é gerado o produto cruzado do qual são selecionadas as combinações que cumpram a cláusula WHERE.
  • 13. Junção Interna (Inner Join) É necessário ter algum cuidado quando se combinam colunas com valores nulos (NULL), já que o valor nulo não se combina com outro valor, ou outro valor nulo, exceto quando se agregam predicados como IS NULL ou IS NOT NULL. Como exemplo, a consulta seguinte traz todos os registros da tabela Cliente e encontra todas as combinações com a tabela Profissao. A cláusula JOIN compara os valores da coluna Profissao de Cliente com a coluna Codigo da Profissao. Quando não existe aos dados não atendem as condições especificadas, eles não são retornados.
  • 14. Junção Interna (Inner Join) SELECT Cliente.nome_cliente,Pedido.cod_cliente,Pedido.num_pedido FROM Cliente INNER JOIN Pedido ON Cliente.Cod_cliente = Pedido.Cod_cliente;
  • 15. Junção Externa (Outer Join) Uma Junção Externa é uma seleção que não requer que os registros de uma tabela possuam registros equivalentes em outra. O registro é mantido na pseudo-tabela se não existe outro registro que lhe corresponda. Este tipo de junção se subdivide dependendo da tabela do qual admitiremos os registros que não possuem correspondência: a tabela esquerda, a direita ou ambas.
  • 16. Left Outer Join O resultado desta seleção sempre contém todos os registros da tabela esquerda (isto é, a primeira tabela mencionada na consulta), mesmo quando não exista registros correspondentes na tabela direita. Desta forma, esta seleção retorna todos os valores da tabela esquerda com os valores da tabela direita correspondente, ou quando não há correspondência retorna um valor NULL. Se por exemplo inserimos na tabela Cliente um Cliente que não possua valor em seu campo Profissao, ou possua um valor que não tem correspondente no Codigo na tabela Profissão, e efetuarmos a seleção com LEFT OUTER JOIN a seleção será efetuada trazendo todos os dados da tabela Cliente, e os correspondentes na tabela Profissao, e quando não houver estes correspondentes, trará o valor NULL.
  • 17. Exemplo SELECT DISTINCT * FROM Cliente LEFT OUTER JOIN Profissao ON Cliente.Cod_Profissao=Profissao.Cod_profissao;
  • 18. Right Outer Join Esta operação é inversa à anterior e retorna sempre todos os registros da tabela à direita (a segunda tabela mencionada na consulta), mesmo se não existir registro correspondente na tabela à esquerda. Nestes casos, o valor NULL é retornado quando não há correspondência. Como exemplo, imaginemos que possuímos diversas Profissões com respectivos códigos que não possuem correspondentes na tabela Clientes. Esta consulta traz todas estas Profissões mesmo que não haja esta correspondência:
  • 19. Exemplo SELECT * FROM Cliente RIGHT OUTER JOIN Profissao ON Cliente.Cod_Profissao = Profissao.Cod_Profissao;
  • 20. Full Outer Join (Não funcionou no Workbench) Esta operação apresenta todos os dados das tabelas à esquerda e à direita, mesmo que não possuam correspondência em outra tabela. A tabela combinada possuirá assim todos os registros de ambas as tabelas e apresentará valores nulos para os registros sem correspondência.
  • 21. Exemplo - (Não funcionou no Workbench) SELECT * FROM Cliente FULL OUTER JOIN Profissao ON Cliente.Cod_Profissao=Profissao.Cod_Profissao;
  • 22. Exemplo 2 SELECT * FROM Cliente LEFT JOIN Profissao ON Cliente.Cod_Profissao=Profissao.Cod_Profissao UNION SELECT * FROM Cliente RIGHT JOIN Profissao ON Cliente.Cod_Profissao=Profissao.Cod_profissao WHERE Cliente.Cod_Profissao IS NULL;