SlideShare uma empresa Scribd logo
1 de 22
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

IHC e Tecnologias Assistivas
IHC e Tecnologias AssistivasIHC e Tecnologias Assistivas
IHC e Tecnologias AssistivasSoraia Prietch
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processosTalles Nascimento Rodrigues
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLRildo (@rildosan) Santos
 
Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Gustavo Zimmermann
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaRalph Rassweiler
 
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Leinylson Fontinele
 
Usabilidade Pedagógica e Design de Interação
Usabilidade Pedagógica e Design de InteraçãoUsabilidade Pedagógica e Design de Interação
Usabilidade Pedagógica e Design de InteraçãoLuiz Agner
 
PETI - Planejamento Estratégico de Tecnologia da Informação
PETI - Planejamento Estratégico de Tecnologia da InformaçãoPETI - Planejamento Estratégico de Tecnologia da Informação
PETI - Planejamento Estratégico de Tecnologia da InformaçãoWagner Silva
 
Bootstrap praticas mais usadas
Bootstrap praticas mais usadas Bootstrap praticas mais usadas
Bootstrap praticas mais usadas Marconi Pacheco
 
Planejamento e Estimativas Ágeis com Planning Poker
Planejamento e Estimativas Ágeis com Planning PokerPlanejamento e Estimativas Ágeis com Planning Poker
Planejamento e Estimativas Ágeis com Planning PokerGlesio Paiva
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfMarcelo Silva
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - ResumoDaniel Brandão
 
Quero ser analista de requisitos ou negócios. Por onde eu começo?
Quero ser analista de requisitos ou negócios. Por onde eu começo? Quero ser analista de requisitos ou negócios. Por onde eu começo?
Quero ser analista de requisitos ou negócios. Por onde eu começo? Venícios Gustavo
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosCharles Fortes
 

Mais procurados (20)

Sistemas Operacionais e Mercado de Trabalho
Sistemas Operacionais e Mercado de TrabalhoSistemas Operacionais e Mercado de Trabalho
Sistemas Operacionais e Mercado de Trabalho
 
IHC e Tecnologias Assistivas
IHC e Tecnologias AssistivasIHC e Tecnologias Assistivas
IHC e Tecnologias Assistivas
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Governança de TI - Aula01 Apresentação da disciplina
Governança de TI - Aula01 Apresentação da disciplinaGovernança de TI - Aula01 Apresentação da disciplina
Governança de TI - Aula01 Apresentação da disciplina
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 
Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
 
Usabilidade Pedagógica e Design de Interação
Usabilidade Pedagógica e Design de InteraçãoUsabilidade Pedagógica e Design de Interação
Usabilidade Pedagógica e Design de Interação
 
PETI - Planejamento Estratégico de Tecnologia da Informação
PETI - Planejamento Estratégico de Tecnologia da InformaçãoPETI - Planejamento Estratégico de Tecnologia da Informação
PETI - Planejamento Estratégico de Tecnologia da Informação
 
Bootstrap praticas mais usadas
Bootstrap praticas mais usadas Bootstrap praticas mais usadas
Bootstrap praticas mais usadas
 
Inspeções em desenvolvimento de software
Inspeções em desenvolvimento de softwareInspeções em desenvolvimento de software
Inspeções em desenvolvimento de software
 
Planejamento e Estimativas Ágeis com Planning Poker
Planejamento e Estimativas Ágeis com Planning PokerPlanejamento e Estimativas Ágeis com Planning Poker
Planejamento e Estimativas Ágeis com Planning Poker
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
 
Quero ser analista de requisitos ou negócios. Por onde eu começo?
Quero ser analista de requisitos ou negócios. Por onde eu começo? Quero ser analista de requisitos ou negócios. Por onde eu começo?
Quero ser analista de requisitos ou negócios. Por onde eu começo?
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 

Semelhante a MySQL Joins - Inner, Left, Right and Full Outer

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 SelectsRodrigo Kiyoshi Saito
 
Excel Intermediário
Excel IntermediárioExcel Intermediário
Excel Intermediárioaprcds
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sqlCharleston Anjos
 
Revisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.pptRevisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.ppta08008
 
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 ComandosMarcos Thomaz
 
Treinamento Excel Avançado
Treinamento Excel AvançadoTreinamento Excel Avançado
Treinamento Excel AvançadoLuis Dalmoneki
 
excelintermedirio-090723125852-phpapp02.ppt
excelintermedirio-090723125852-phpapp02.pptexcelintermedirio-090723125852-phpapp02.ppt
excelintermedirio-090723125852-phpapp02.pptelainesanchoparaiso
 
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çãoCarlos 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 dadosjulianaveregue
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultasjulianaveregue
 

Semelhante a MySQL Joins - Inner, Left, Right and Full Outer (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 VisualCentro 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áticaCentro 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çãoCentro 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 dataCentro Paula Souza
 
18 CSS - Trabalhando com Links
18 CSS - Trabalhando com Links18 CSS - Trabalhando com Links
18 CSS - Trabalhando com LinksCentro Paula Souza
 
15 CSS - Trabalhando com fontes
15 CSS - Trabalhando com fontes15 CSS - Trabalhando com fontes
15 CSS - Trabalhando com fontesCentro 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ísicoCentro 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ógicoCentro 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 ConceitualCentro 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 tabelaCentro Paula Souza
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticosCentro 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 usarCentro 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árioCentro Paula Souza
 
12 Java Script - Trabalhando com datas
12 Java Script  -  Trabalhando com datas12 Java Script  -  Trabalhando com datas
12 Java Script - Trabalhando com datasCentro Paula Souza
 
11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventosCentro Paula Souza
 
08 Java Script Introdução - Teoria
08 Java Script   Introdução  - Teoria08 Java Script   Introdução  - Teoria
08 Java Script Introdução - TeoriaCentro 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

ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...ArianeLima50
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumPatrícia de Sá Freire, PhD. Eng.
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERDeiciane Chaves
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 

Último (20)

ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comum
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdf
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 

MySQL Joins - Inner, Left, Right and Full Outer

  • 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;