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

SQL INTERSECT


O operador de interseção SQL é usado para combinar duas ou mais instruções SELECT, mas exibe apenas os dados semelhantes à instrução SELECT.

A sintaxe da operação INTERSECT:
SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME1 INTERSECT SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME2;

As regras a serem seguidas usando o operador INTERSECT são as seguintes:
  1. O número de colunas e a ordem das colunas devem ser iguais.
  2. O tipo de dados deve ser compatível.

Vamos entender o conceito de SQL INTERSECT com a ajuda de exemplos.

Considere as tabelas a seguir junto com os registros fornecidos.

Tabela 1:Aluno
ID_ESTUDANTE ESTUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
1 NEHA 85 88 100 273
2 VISHAL 70 90 82 242
3 SAMKEET 75 88 96 259
4 NIQUIL 60 75 80 215
5 YOGESH 56 65 78 199
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
8 VINEET 85 90 100 275
9 SANKET 86 78 65 229
10 PRAQUI 90 80 75 245
101 SNEHA 85 88 100 273
103 VISHAL 75 88 96 259

Tabela 2:Stud
ID_ESTUDANTE ESTUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
4 NIQUIL 60 75 80 215
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
9 SANKET 86 78 65 229
101 SNEHA 85 88 100 273
102 SAMKEET 70 90 82 242
103 VISHAL 75 88 96 259
105 YOGESHWARI 56 65 78 199
106 VINAY 85 90 100 275
107 PRASHAKA 90 80 75 245
8 VINEET 85 90 100 275

Exemplo 1: Execute uma consulta para realizar a operação INTERSECT entre a tabela Student e a tabela Stud.
SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD;

Na consulta acima, usamos duas consultas SELECT. A primeira consulta SELECT busca os dados da tabela Student. Ele executa a operação INTERSECT com os dados buscados pela segunda consulta SELECT que recupera os dados da tabela Stud. Apenas registros semelhantes entre essas duas tabelas são selecionados.

A saída da consulta acima é:
ID_ESTUDANTE ESTUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
4 NIQUIL 60 75 80 215
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
8 VINEET 85 90 100 275
9 SANKET 86 78 65 229
101 SNEHA 85 88 100 273
103 VISHAL 75 88 96 259

Apenas os registros comuns entre a Tabela do Aluno e as tabelas do Stud são exibidos.

Exemplo 2: Execute uma consulta para realizar a operação INTERSECT entre a tabela Student e a tabela Stud, mas exiba apenas os registros Student da tabela Stud em que as notas matemáticas são iguais a 100.
SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS = 100;

A saída da consulta acima é:
ID_ESTUDANTE ESTUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
7 SONAM 98 89 100 287
8 VINEET 85 90 100 275
101 SNEHA 85 88 100 273

Somente os registros dos alunos são exibidos cujas notas matemáticas são iguais a 100 da tabela Stud e são comuns entre a tabela Student e Stud.

Exemplo 3: Execute uma consulta para realizar a operação INTERSECT entre a tabela Student e a tabela Stud, mas exiba apenas os registros Student da tabela Student em que as notas de química são maiores que 80.
SELECT * FROM STUDENT WHERE CHEMISTRY_MARKS > 80 INTERSECT SELECT * FROM STUD;

A saída da consulta acima é:
ID_ESTUDANTE ESTUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
8 VINEET 85 90 100 275
101 SNEHA 85 88 100 273
103 VISHAL 75 88 96 259

Somente os registros dos alunos são exibidos cujas notas de química são maiores que 80 na Tabela do Aluno e são comuns entre a tabela Aluno e Stud.

Exemplo 4: Execute uma consulta para realizar a operação INTERSECT entre a tabela Student e a tabela Stud e exiba apenas os registros do aluno em que as notas de física são maiores que 75 da tabela do aluno e, em segundo lugar, selecione as consultas que exibem apenas os registros do aluno em que as notas de matemática são maiores que 90 da tabela Viga.
SELECT * FROM STUDENT WHERE PHYSICS_MARKS > 75 INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS > 90;

A saída da consulta acima é:
ID_ESTUDANTE ESTUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
8 VINEET 85 90 100 275
101 SNEHA 85 88 100 273

Somente os registros dos alunos são exibidos cujas notas de física são maiores que 75 na Tabela do Aluno e as notas de matemática são maiores que 90 na Tabela de Stud e são comuns entre a tabela do Aluno e a tabela de Stud.