Neste artigo SQL, você aprenderá como usar a palavra-chave IN nas consultas do banco de dados SQL.
algoritmo de classificação por inserção
O que é a palavra-chave IN em SQL?
O EM é um operador lógico na Linguagem de Consulta Estruturada que permite aos usuários do banco de dados definir mais de um valor na cláusula WHERE.
A cláusula WHERE com o operador IN mostra os registros no resultado que correspondem ao conjunto de valores fornecido. Também podemos especificar a subconsulta entre parênteses do operador IN.
Podemos usar o operador IN com as consultas INSERT, SELECT, UPDATE e DELETE no banco de dados SQL.
O operador IN em SQL substitui o processo de múltiplas condições OR em consultas.
Sintaxe do operador IN:
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Value_1, Value_2, Value_3, ......., Value_N);
Se quiser usar o operador IN nas instruções SQL, você deve seguir as etapas abaixo na mesma sequência:
- Crie um banco de dados em SQL.
- Crie a nova tabela SQL.
- Insira os dados na tabela.
- Visualize os dados inseridos.
- Use o operador SQL IN para exibir os dados da tabela.
Agora, vamos explicar resumidamente cada etapa, uma por uma, com o melhor exemplo de SQL:
Etapa 1: Crie um novo banco de dados simples
A primeira etapa é criar um novo banco de dados em Structured Query Language.
A seguinte instrução CREATE cria o novo Mecânica_Faculdade Banco de dados no servidor SQL:
CREATE Database Mechanical_College;
Passo 2: Crie uma nova tabela
Agora, use a seguinte sintaxe SQL que auxilia na criação da nova tabela no banco de dados:
CREATE TABLE table_name ( 1st_Column data type (character_size of 1st Column), 2nd_Column data type (character_size of the 2nd column ), 3rd_Column data type (character_size of the 3rd column), ...
Nth_Column data type (character_size of the Nth column) );
A seguinte instrução CREATE cria o Faculdade_Info mesa no Mecânica_Faculdade Base de dados:
CREATE TABLE Faculty_Info ( Faculty_ID INT NOT NULL PRIMARY KEY, Faculty_First_Name VARCHAR (100), Faculty_Last_Name VARCHAR (100), Faculty_Dept_Id INT NOT NULL, Faculty_Joining_DateDATE, Faculty_City Varchar (80), Faculty_Salary INT );
Etapa 3: insira os dados na tabela
As seguintes consultas INSERT inserem os registros de Faculdades na tabela Faculdade_Info:
INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1001, Arush, Sharma, 4001, 2020-01-02, Delhi, 20000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1002, Bulbul, Roy, 4002, 2019-12-31, Delhi, 38000 ); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1004, Saurabh, Sharma, 4001, 2020-10-10, Mumbai, 45000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1005, Shivani, Singhania, 4001, 2019-07-15, Kolkata, 42000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1006, Avinash, Sharma, 4002, 2019-11-11, Delhi, 28000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary)VALUES (1007, Shyam, Besas, 4003, 2021-06-21, Lucknow, 35000);
Etapa 4: visualizar os dados inseridos
A instrução SELECT a seguir exibe os dados da tabela Faculdade_Info:
SELECT * FROM Faculty_Info;
Faculdade_Id | Faculdade_Primeiro_Nome | Faculdade_Sobrenome_Nome | Faculdade_Dept_Id | Faculdade_Ingresso_Data | Faculdade_Cidade | Corpo Docente_Salário |
---|---|---|---|---|---|---|
1001 | urso | Sharma | 4001 | 2020-01-02 | Délhi | 20.000 |
1002 | Bulbul | Roy | 4002 | 31/12/2019 | Délhi | 38.000 |
1004 | Saurabh | Roy | 4001 | 2020-10-10 | Bombaim | 45.000 |
1005 | Shivani | Singhânia | 4001 | 15/07/2019 | Calcutá | 42.000 |
1006 | Avinash | Sharma | 4002 | 11/11/2019 | Délhi | 28.000 |
1007 | Tímido | Você beija | 4003 | 2021-06-21 | Luck agora | 35.000 |
Etapa 5: use o operador IN para visualizar os dados da tabela Faculdade_Info de diferentes maneiras
A consulta a seguir usa valores numéricos com o operador IN:
SELECT Faculty_Id, Faculty_First_Name, Faculty_Dept_Id, Faculty_Joining_Date, Faculty_Salary FROM Faculty_Info WHERE Faculty_Salary IN ( 38000, 42000, 45000, 35000);
Esta consulta mostra apenas o cadastro das Faculdades cujo salário é repassado no operador IN da cláusula WHERE.
Saída:
Faculdade_Id | Faculdade_Primeiro_Nome | Faculdade_Dept_Id | Faculdade_Ingresso_Data | Corpo Docente_Salário |
---|---|---|---|---|
1002 | Bulbul | 4002 | 31/12/2019 | 38.000 |
1004 | Saurabh | 4001 | 2020-10-10 | 45.000 |
1005 | Shivani | 4001 | 15/07/2019 | 42.000 |
1007 | Tímido | 4003 | 2021-06-21 | 35.000 |
A consulta a seguir usa valores de texto ou caracteres com o operador lógico IN:
SELECT Faculty_Id, Faculty_First_Name, Faculty_Joining_Date, Faculty_City FROM Faculty_Info WHERE Faculty_City IN ( Mumbai, Kolkata, Lucknow);
Esta consulta mostra apenas o cadastro das Faculdades cuja cidade está incluída entre parênteses do operador IN na cláusula WHERE.
Saída:
Faculdade_Id | Faculdade_Primeiro_Nome | Faculdade_Ingresso_Data | Faculdade_Cidade |
---|---|---|---|
1004 | Saurabh | 2020-10-10 | Bombaim |
1005 | Shivani | 15/07/2019 | Calcutá |
1007 | Tímido | 2021-06-21 | Luck agora |
A consulta a seguir usa DATEformat com operador lógico IN:
SELECT Faculty_Id, Faculty_First_Name, Faculty_Dept_ID Faculty_Joining_Date, Faculty_Salary FROM Faculty_Info WHERE Faculty_Joining_Date IN (2020-01-02, 2021-06-21, 2020-10-10, 2019-07-15);
Esta consulta mostra apenas os registros das Faculdades cuja data de adesão é passada no operador IN da cláusula WHERE.
Saída:
Faculdade_Id | Faculdade_Primeiro_Nome | Faculdade_Dept_Id | Faculdade_Ingresso_Data | Corpo Docente_Salário |
---|---|---|---|---|
1001 | urso | 4001 | 2020-01-02 | 20.000 |
1004 | Saurabh | 4001 | 2020-10-10 | 45.000 |
1005 | Shivani | 4001 | 15/07/2019 | 42.000 |
1007 | Tímido | 4003 | 2021-06-21 | 35.000 |
A consulta a seguir usa o comando SQL UPDATE com o operador lógico IN:
char em string java
UPDATE Faculty_Info SET Faculty_Salary = 50000 WHERE Faculty_Dept_ID IN (4002, 4003);
Esta consulta atualiza o salário das Faculdades cujo Dept_Id é passado no operador IN da cláusula WHERE.
Para verificar o resultado da consulta acima, digite a seguinte consulta SELECT em SQL:
SELECT * FROM Faculty_Info;
Faculdade_Id | Faculdade_Primeiro_Nome | Faculdade_Sobrenome_Nome | Faculdade_Dept_Id | Faculdade_Ingresso_Data | Faculdade_Cidade | Corpo Docente_Salário |
---|---|---|---|---|---|---|
1001 | urso | Sharma | 4001 | 2020-01-02 | Délhi | 20.000 |
1002 | Bulbul | Roy | 4002 | 31/12/2019 | Délhi | 50.000 |
1004 | Saurabh | Roy | 4001 | 2020-10-10 | Bombaim | 45.000 |
1005 | Shivani | Singhânia | 4001 | 15/07/2019 | Calcutá | 42.000 |
1006 | Avinash | Sharma | 4002 | 11/11/2019 | Délhi | 50.000 |
1007 | Tímido | Você beija | 4003 | 2021-06-21 | Luck agora | 50.000 |
Operador SQL IN com subconsulta
Na Structured Query Language, também podemos usar a subconsulta com o operador lógico IN.
A sintaxe do operador IN com subconsulta é fornecida abaixo:
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Subquery);
Se você quiser entender o operador IN com subconsulta, você deve criar as duas tabelas diferentes na linguagem de consulta estruturada usando a instrução CREATE.
A consulta a seguir cria a tabela Faculdade_Info no banco de dados:
CREATE TABLE Faculty_Info ( Faculty_ID INT NOT NULL PRIMARY KEY, Faculty_First_Name VARCHAR (100), Faculty_Last_Name VARCHAR (100), Faculty_Dept_Id INT NOT NULL, Faculty_Address Varchar (80), Faculty_City Varchar (80), Faculty_Salary INT );
A consulta a seguir cria o Departamento_Info tabela no banco de dados:
o que é mac os
CREATE TABLE Department_Info ( Dept_Id INT NOT NULL, Dept_Name Varchar(100), Head_Id INT );
As seguintes consultas INSERT inserem os registros de Faculdades na tabela Faculdade_Info:
INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1001, Arush, Sharma, 4001, 22 street, New Delhi, 20000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1002, Bulbul, Roy, 4002, 120 street, New Delhi, 38000 ); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1004, Saurabh, Sharma, 4001, 221 street, Mumbai, 45000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1005, Shivani, Singhania, 4001, 501 street, Kolkata, 42000);
As seguintes consultas INSERT inserem os registros dos departamentos na tabela Department_Info:
INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4001, Arun, 1005); INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4002, Zayant, 1009); INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4003, Manish, 1007);
A instrução SELECT a seguir exibe os dados da tabela Faculdade_Info:
SELECT * FROM Faculty_Info;
Faculdade_Id | Faculdade_Primeiro_Nome | Faculdade_Sobrenome_Nome | Faculdade_Dept_Id | Faculdade_Endereço | Faculdade_Cidade | Corpo Docente_Salário |
---|---|---|---|---|---|---|
1001 | urso | Sharma | 4001 | Rua 22 | Nova Delhi | 20.000 |
1002 | Bulbul | Roy | 4002 | Rua 120 | Nova Delhi | 38.000 |
1004 | Saurabh | Roy | 4001 | Rua 221 | Bombaim | 45.000 |
1005 | Shivani | Singhânia | 4001 | Rua 501 | Calcutá | 42.000 |
1006 | Avinash | Sharma | 4002 | Rua 12 | Délhi | 28.000 |
1007 | Tímido | Você beija | 4003 | Rua 202 | Luck agora | 35.000 |
A consulta a seguir mostra os registros do departamento da tabela Department_Info:
SELECT * FROM Department_Info;
A consulta a seguir usa o operador IN com uma subconsulta:
SELECT * FROM Faculty_Info WHERE Faculty_Dept_Id IN ( Select Dept_Id FROM Department_Info WHERE Head_Id >= 1007);
Esta consulta exibe o registro das Faculdades cujo Dept_ID da tabela Faculdade_Info corresponde à tabela Dept_Id da tabela Department_Info.
Saída:
Faculdade_Id | Faculdade_Primeiro_Nome | Faculdade_Sobrenome_Nome | Faculdade_Dept_Id | Faculdade_Endereço | Faculdade_Cidade | Corpo Docente_Salário |
---|---|---|---|---|---|---|
1002 | Bulbul | Roy | 4002 | Rua 120 | Nova Delhi | 38.000 |
1006 | Avinash | Sharma | 4002 | Rua 12 | Délhi | 28.000 |
1007 | Tímido | Você beija | 4003 | Rua 202 | Luck agora | 35.000 |
O que NÃO ESTÁ IN no SQL?
O NOT IN é outro operador em Structured Query Language, que é exatamente o oposto do operador SQL IN. Permite acessar esses valores da tabela, o que não passa entre parênteses do operador IN.
O operador NOT IN pode ser usado nas consultas SQL INSERT, UPDATE, SELECT e DELETE.
Sintaxe do operador NOT IN:
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name NOT IN (Value_1, Value_2, Value_3, ......., Value_N);
Se você quiser usar o operador NOT IN nas instruções SQL, você deve seguir os passos indicados na mesma sequência:
- Crie um banco de dados no sistema SQL.
- Crie a nova tabela no banco de dados.
- Insira os dados na tabela
- Visualizar os dados inseridos
- Use o operador NOT IN para visualizar os dados.
Agora, vamos explicar resumidamente cada etapa, uma por uma, com o melhor exemplo de SQL:
Etapa 1: Crie o novo banco de dados Simples
A consulta a seguir cria o novo Indústria_Civil Banco de dados no servidor SQL:
CREATE Database Industry;
Etapa 2: crie a nova tabela
A consulta a seguir cria o Trabalhador_Info mesa no Indústria_Civil Base de dados:
CREATE TABLE Worker_Info ( Worker_ID INT NOT NULL PRIMARY KEY, Worker_Name VARCHAR (100), Worker_Gender Varchar(20), Worker_Age INT NOT NULL DEFAULT 18, Worker_Address Varchar (80), Worker_Salary INT NOT NULL );
Etapa 3: insira os valores
As seguintes consultas INSERT inserem os registros dos trabalhadores na tabela Worker_Info:
INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1001, Arush, Male, Agra, 35000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1002, Bulbul, Female, Lucknow, 42000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1004, Saurabh, Male, 20, Lucknow, 45000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1005, Shivani, Female, Agra, 28000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1006, Avinash, Male, 22, Delhi, 38000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1007, Shyam, Male, Banglore, 20000);
Etapa 4: visualizar os dados da tabela
A consulta a seguir exibe os dados da tabela Worker_Info.
SELECT * FROM Worker_Info;
ID_trabalhador | Nome_trabalhador | Trabalhador_Sexo | Idade_trabalhador | Endereço_trabalhador | Trabalhador_Salário |
---|---|---|---|---|---|
1001 | urso | Macho | 18 | Agra | 35.000 |
1002 | Bulbul | Fêmea | 18 | Luck agora | 42.000 |
1004 | Saurabh | Macho | vinte | Luck agora | 45.000 |
1005 | Shivani | Fêmea | 18 | Agra | 28.000 |
1006 | Avinash | Macho | 22 | Délhi | 38.000 |
1007 | Tímido | Macho | 18 | Bangalore | 20.000 |
Etapa 4: use o operador NOT IN
A consulta a seguir usa o operador NOT IN com dados numéricos:
SELECT * FROM Worker_Info WHERE Worker_salary NOT IN (35000, 28000, 38000);
Esta consulta SELECT mostra todos os trabalhadores na saída cujo salário não é repassado no operador NOT IN.
O resultado da afirmação acima é mostrado na tabela a seguir:
inicialização da lista python
ID_trabalhador | Nome_trabalhador | Trabalhador_Sexo | Idade_trabalhador | Endereço_trabalhador | Trabalhador_Salário |
---|---|---|---|---|---|
1002 | Bulbul | Fêmea | 18 | Luck agora | 42.000 |
1004 | Saurabh | Macho | vinte | Luck agora | 45.000 |
1007 | Tímido | Macho | 18 | Bangalore | 20.000 |
A consulta a seguir usa o operador lógico NOT IN com valores de caracteres ou de texto:
SELECT * FROM Worker_Info WHERE Worker_Address NOT IN (Lucknow, Delhi);
Esta consulta mostra o registro de todos aqueles Trabalhadores cujo endereço não é passado no operador NOT IN.
Saída:
ID_trabalhador | Nome_trabalhador | Trabalhador_Sexo | Idade_trabalhador | Endereço_trabalhador | Trabalhador_Salário |
---|---|---|---|---|---|
1001 | urso | Macho | 18 | Agra | 35.000 |
1005 | Shivani | Fêmea | 18 | Agra | 28.000 |
1007 | Tímido | Macho | 18 | Bangalore | 20.000 |