O operador SQL INTERSECT combina duas instruções select e retorna apenas o conjunto de dados que é comum em ambas as instruções. Simplificando, ele atua como uma interseção matemática. Em matemática, a interseção de A e B são os dados comuns presentes em A e B. Assim, quando você fornece duas consultas selecionadas para combinar, o SQL INTERSECT retornará apenas as linhas comuns de ambas as consultas SELECT. Semelhante ao operador UNION no SQL, até mesmo o operador INTERSECT deve obedecer pelas duas regras a seguir para uma execução bem-sucedida:

  • O número e a ordem das colunas em ambas as consultas devem ser iguais
  • Os tipos de dados das colunas correspondentes de ambas as consultas selecionadas devem ser compatíveis entre si

O diagrama descrito abaixo ajudará você a entender melhor.

SQLINTERSECT_1

Como mostra o diagrama, quando você cruza a consulta 1 (verde) e a consulta 2 (azul), o resultado será a interseção das duas, a cor cinza no diagrama acima.

Como usar o operador SQL INTERSECT?

Você pode usar o operador SQL INTERSECT para combinar linhas de duas consultas usando a seguinte sintaxe.

SELECIONE coluna1 [, coluna2]

FROM table1 [, table2]

[condição WHERE]

INTERSECT

SELECIONE coluna1 [, coluna2]

FROM table1 [, table2]

[condição WHERE]

Como você pode ver na sintaxe acima, o número de colunas e seus tipos de dados precisam ser iguais para que o SQL INTERSECT funcione de forma eficiente.

Curso GRATUITO: Introdução à Análise de Dados

O domínio da análise de dados está à distância de um clique! Começar a aprender

Curso GRATUITO: Introdução à Análise de Dados

Exemplo de operador SQL INTERSECT

Usando a sintaxe acima, você pode usar o SQL INTERSECT Operator. Aqui está um exemplo de INTERSECT do SQL Server que o ajudará a entender esse conceito.

Primeiro, você começará criando duas tabelas que você usará no exemplo e inserir alguns valores neles.

CRIAR clientes TABLE (

ID INT PRIMARY KEY,

Nome VARCHAR (20),

País VARCHAR (20),

Cidade VARCHAR (20)

);

INSERIR NOS VALORES DE CLIENTES (1,’Aakash’,’INDIA’,’Mumbai’);

INSERIR NOS VALORES DE CLIENTES (2,’George’,’EUA’,’Nova York’);

INSERIR NOS VALORES DE CLIENTES (3,’David’,’INDIA’,’Bangalore’);

INSERIR NOS VALORES DE CLIENTES (4,’Leo’,’ESPANHA’,’Madrid’);

INSERIR NOS VALORES DE CLIENTES (5,’Rahul’,’INDIA’,’Delhi’);

INSERT INTO Customers VALUES (6,’Brian’,’USA’,’Chicago’);

INSERIR NOS VALORES DE CLIENTES (7,’Justin’,’ESPANHA’,’Barcelona’);

SELECIONE * DOS clientes;

Resultado:

SQLINTERSECT_2

Isso criará a tabela Clientes, com as colunas ID, Nome, País e Cidade. A segunda tabela será a tabela Ramos, com as informações sobre os ramos de uma loja e inclui colunas Branch_Code, País e Cidade. Veja como você pode criar a tabela.

CRIAR ramos TABLE (

Branch_Code INT PRIMARY KEY,

País VARCHAR (20),

Cidade VARCHAR (20)

);

INSERIR NOS VALORES DAS filiais (101,’INDIA’,’Mumbai’);

INSERIR NOS VALORES das filiais (201,’INDIA’,’Bangalore’);

INSERT INTO Branch VALUES (301,’USA’,’Chicago’);

INSERT INTO Branch VALUES (401,’USA’,’New York’);

INSERT INTO Branch VALUES (501,’ESPANHA’,’Madrid’);

SELECIONE * DE ramos;

Resultado:

SQLINTERSECT_3

Agora que as duas tabelas foram criadas, use o operador SQL INTERSECT para ver como ele funciona para fornecer as linhas comuns.

SELECIONE país, cidade

DE clientes

INTERSECT

SELECIONE país, cidade

FROM ramos

ORDENAR POR Cidade;

Resultado:

SQLINTERSECT_4

A primeira consulta selecionará países e cidades de todas as linhas da tabela Clientes no exemplo acima. Da mesma forma, a segunda consulta selecionará todos os países e cidades da tabela Ramos. Quando você usa o operador SQL INTERSECT aqui, ele busca e fornece apenas os valores comuns de ambas as consultas. Portanto, a consulta não inclui a cidade de Delhi e Barcelona na saída. Isso porque essas são as duas cidades que não estão disponíveis na tabela Ramos.

Observação: este exemplo também usou o ORDER BY cláusula no exemplo para classificar os resultados.

Quais são os usos do SQL INTERSECT Operator?

O operador SQL INTERSECT é útil em várias situações. É melhor quando você deseja buscar linhas comuns entre os resultados de duas instruções ou consultas select.

Você pode pensar que o operador AND pode ajudar a encontrar valores de dados comuns, então por que usar o operador INTERSECT?

A razão é que o SQL INTERSECT funciona em linhas, mas o operador AND funciona em colunas. Você vai passar por isso em detalhes enquanto explora os usos do operador SQL INTERSECT. Você já viu a vantagem de cruzar duas tabelas no exemplo anterior, onde usou o operador na tabela Clientes e Ramos para cruzar e encontrar as cidades comuns. O outro uso é:

Encontrando linhas comuns na mesma tabela

Para este exemplo, vamos tentar encontrar os cargos em uma empresa ocupada por homens e mulheres. Você começará criando a tabela HR e, em seguida, buscará a saída usando o operador SQL INTERSECT.

CRIAR Tabela HR (

ID INT,

Nome VARCHAR (20),

Título VARCHAR (20),

Sexo VARCHAR (1),

Idade INT

);

INSERT INTO HR VALUES (1,’George’,’Sales Representative’,’M’, 23);

INSERT INTO HR VALUES (2,’Divya’,’Receptionist’,’F’, 21);

INSERT INTO HR VALUES (3,’David’,’Sales Representative’,’M’, 27);

INSERT INTO HR VALUES (4,’Kailash’,’Manager’,’M’, 25);

INSERT INTO HR VALUES (5,’Jenifer’,’Sales Representative’,’F’, 23);

INSERT INTO HR VALUES (6,’Rachel’,’Manager’,’F’, 26);

INSERIR NOS VALORES DE RH (7,’Aakash’,’Desenvolvimento de negócios’,’M’, 28);

SELECIONE * DO RH;

Resultado:

SQLINTERSECT_5.

Como você pode ver na saída, Recepcionista e Desenvolvimento de Negócios são os únicos dois títulos que não possuem funcionários do sexo masculino e feminino. Vamos ver se o operador INTERSECT pode buscar os resultados corretamente.

SELECIONE o título

DO RH

ONDE Gênero=’M’

INTERSECT

SELECIONE o título

DO RH

ONDE Gênero=’F’

Resultado:

SQLINTERSECT_6.

Como você pode ver, o operador INTERSECT buscou corretamente os resultados esperados. Se você tiver usado o operador AND aqui, não teria funcionado. Isso ocorre porque o operador AND teria buscado os resultados onde a mesma linha teria masculino e feminino. Portanto, você não teria nenhuma saída.

SELECIONE o título

DO RH

ONDE gênero=’M’

AND gênero=’F’;

Não haverá saída para esta consulta.

Programa de Pós-Graduação em Análise de Negócios

Em parceria com a Purdue University VER CURSO

Programa de Pós-Graduação em Análise de Negócios

Ordenando o resultado da produção

Você pode usar a cláusula ORDER BY para ordenar a saída em ordem crescente. Primeiro, você adicionará uma linha com o título de recepcionista e gênero masculino em nossa tabela de RH para ver em ação.

INSERT INTO HR VALUES (8,’Brian’,’Recepcionista’,’M’, 32);

SELECIONE * DO RH

WHERE ID=8;

Resultado:

SQLINTERSECT_7.

Conforme a saída confirma, ele adicionou a nova linha à tabela. Agora, você usará o operador SQL INTERSECT com a cláusula ORDER BY e verá como ele ordena a saída.

SELECIONE o título

DO RH

ONDE Gênero=’M’

INTERSECT

SELECIONE o título

DO RH

ONDE Gênero=’F’

ORDENAR POR título;

Resultado:

SQLINTERSECT_8.

Como você pode ver na saída, foi ordenado alfabeticamente com base no título.

Ganhe experiência nas mais recentes ferramentas e técnicas de análise de negócios com o Programa de certificação de analista de negócios . Inscreva-se agora!

Conclusão

Neste artigo, você aprendeu sobre o operador SQL INTERSECT junto com exemplos. Ele funciona de forma semelhante a uma interseção matemática e busca as linhas com valores de coluna comuns. Agora você pode ajustar os códigos e ampliar as tabelas inserindo mais linhas para jogar com o operador INTERSECT. Se você quiser aprender mais sobre esses conceitos fundamentais, pode optar pelo Curso de treinamento de certificação de SQL da Simplilearn . O curso fornece materiais de aprendizagem individualizados e conhecimento profundo de todos os conceitos SQL básicos e avançados essenciais. Fazer o curso garantirá a você uma certificação reconhecida globalmente e o ajudará a se destacar no gerenciamento de banco de dados SQL.

Se você tiver alguma dúvida sobre este tutorial “interseção de SQL” para nós, sinta-se à vontade para compartilhá-la nos comentários no final desta página. Nossos especialistas farão o mesmo, no mínimo!

Source link

Categories: Wordpress