sasasasasa
Banco de Dados II
Natural Joins
• A cláusula NATURAL JOIN é baseada em todas as colunas de duas tabelas que possuem os mesmos nomes.
• Seleciona linhas de duas tabelas que têm valores iguais nas colunas em comum.
• Se as colunas que possuem mesmo nome forem de tipos diferentes, um erro é exibido.
Natural Joins
Natural Joins
A Cláusula USING
• Se muitas colunas têm os mesmos nomes mas tipos de dados diferentes, o NATURAL JOIN pode ser modificado com USING para selecionar apenas as colunas desejadas.
• Utilize a cláusula USING para comparar apenas uma coluna ainda que mais de uma tenha o mesmo nome.
A Cláusula USING
• Exemplo de utilização de USING:
SELECT
Emp_id, Nome, Emp_data_nasc, Dept_id, Dept_nome, Dept_uf
FROM empregado E JOIN departamento D
USING(Dept_id)
WHERE Dept_id = 1
INNER JOINS
• Normalmente envolvem Primary Key (PK) e
Foreign Key (FK).
• Colunas relacionadas podem ser de nomes diferentes. • São também chamados de EQUIJOINS ou
SIMPLE JOINS.
Inner Joins
Foreign Key
Primary Key
Inner Joins
SELECT
empregado.Emp_id, empregado.Nome, empregado.Sobrenome, empregado.Emp_data_nasc, empregado.Dept_id, departamento.Dept_nome
FROM empregado JOIN departamento
ON(empregado.Dept_id = departamento.Dept_id)
Qualificando nomes de colunas ambíguos
• Utilize prefixos de tabelas para qualificar nomes de colunas que estão em múltiplas tabelas.
• Utilize prefixos de tabelas para distinguir entre colunas que possuem nomes idênticos e são de tabelas diferentes.
• Use prefixos de tabelas para aumentar performance. Inner Joins
SELECT
empregado.Emp_id, empregado.Nome, empregado.Sobrenome, empregado.Emp_data_nasc, empregado.Dept_id, departamento.Dept_nome FROM empregado JOIN departamento
ON(empregado.Dept_id = departamento.Dept_id)
• Prefixo de tabela identifica a qual tabela a coluna
Dept_id se refere.
• Quando não há colunas ambíguas, o uso de