logo

So verwenden Sie IN in SQL

In diesem SQL-Artikel erfahren Sie, wie Sie das Schlüsselwort IN in den Abfragen der SQL-Datenbank verwenden.

Was ist das Schlüsselwort IN in SQL?

Der IN ist ein logischer Operator in der Structured Query Language, der es Datenbankbenutzern ermöglicht, mehr als einen Wert in der WHERE-Klausel zu definieren.

Die WHERE-Klausel mit IN-Operator zeigt diejenigen Datensätze im Ergebnis an, die mit dem angegebenen Wertesatz übereinstimmen. Wir können die Unterabfrage auch in der Klammer des IN-Operators angeben.

Wir können den IN-Operator mit den INSERT-, SELECT-, UPDATE- und DELETE-Abfragen in der SQL-Datenbank verwenden.

Der IN-Operator in SQL ersetzt den Prozess mehrerer OR-Bedingungen in Abfragen.

Syntax des IN-Operators:

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

Wenn Sie den IN-Operator in den SQL-Anweisungen verwenden möchten, müssen Sie die folgenden Schritte in der gleichen Reihenfolge ausführen:

  1. Erstellen Sie eine Datenbank in SQL.
  2. Erstellen Sie die neue SQL-Tabelle.
  3. Fügen Sie die Daten in die Tabelle ein.
  4. Sehen Sie sich die eingefügten Daten an.
  5. Verwenden Sie den SQL IN-Operator, um die Daten der Tabelle anzuzeigen.

Jetzt erklären wir jeden Schritt einzeln kurz anhand des besten SQL-Beispiels:

Schritt 1: Erstellen Sie eine einfache neue Datenbank

Der erste Schritt besteht darin, eine neue Datenbank in Structured Query Language zu erstellen.

Die folgende CREATE-Anweisung erstellt das Neue Mechanical_College Datenbank im SQL Server:

 CREATE Database Mechanical_College; 

Schritt 2: Erstellen Sie eine neue Tabelle

Verwenden Sie nun die folgende SQL-Syntax, die beim Erstellen der neuen Tabelle in der Datenbank hilft:

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

Die folgende CREATE-Anweisung erstellt die Fakultätsinfo Tabelle in der Mechanical_College Datenbank:

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

Schritt 3: Fügen Sie die Daten in die Tabelle ein

Die folgenden INSERT-Abfragen fügen die Datensätze der Fakultäten in die Tabelle Faculty_Info ein:

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

Schritt 4: Sehen Sie sich die eingefügten Daten an

Die folgende SELECT-Anweisung zeigt die Daten der Faculty_Info-Tabelle an:

 SELECT * FROM Faculty_Info; 

Fakultäts-ID Fakultätsvorname Fakultätsnachname Faculty_Dept_Id Faculty_Joining_Date Fakultät_Stadt Fakultätsgehalt
1001 tragen Sharma 4001 02.01.2020 Delhi 20000
1002 Bulbul Roy 4002 31.12.2019 Delhi 38000
1004 Saurabh Roy 4001 10.10.2020 Mumbai 45000
1005 Shivani Singhania 4001 15.07.2019 Kalkutta 42000
1006 Avinash Sharma 4002 11.11.2019 Delhi 28000
1007 Shyam Du küsst 4003 21.06.2021 Lucknow 35000

Schritt 5: Verwenden Sie den IN-Operator, um die Daten der Tabelle Faculty_Info auf unterschiedliche Weise anzuzeigen

Die folgende Abfrage verwendet numerische Werte mit dem IN-Operator:

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

Diese Abfrage zeigt nur die Datensätze der Fakultäten an, deren Gehalt im IN-Operator der WHERE-Klausel übergeben wird.

Ausgabe:

Fakultäts-ID Fakultätsvorname Faculty_Dept_Id Faculty_Joining_Date Fakultätsgehalt
1002 Bulbul 4002 31.12.2019 38000
1004 Saurabh 4001 10.10.2020 45000
1005 Shivani 4001 15.07.2019 42000
1007 Shyam 4003 21.06.2021 35000

Die folgende Abfrage verwendet Text- oder Zeichenwerte mit dem logischen Operator IN:

 SELECT Faculty_Id, Faculty_First_Name, Faculty_Joining_Date, Faculty_City FROM Faculty_Info WHERE Faculty_City IN ( Mumbai, Kolkata, Lucknow); 

Diese Abfrage zeigt nur die Datensätze der Fakultäten an, deren Stadt in der Klammer des IN-Operators in der WHERE-Klausel enthalten ist.

Ausgabe:

So enthüllen Sie versteckte Apps
Fakultäts-ID Fakultätsvorname Faculty_Joining_Date Fakultät_Stadt
1004 Saurabh 10.10.2020 Mumbai
1005 Shivani 15.07.2019 Kalkutta
1007 Shyam 21.06.2021 Lucknow

Die folgende Abfrage verwendet das DATEformat mit dem logischen Operator 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); 

Diese Abfrage zeigt nur die Datensätze von Fakultäten an, deren Beitrittsdatum im IN-Operator der WHERE-Klausel übergeben wird.

Ausgabe:

Fakultäts-ID Fakultätsvorname Faculty_Dept_Id Faculty_Joining_Date Fakultätsgehalt
1001 tragen 4001 02.01.2020 20000
1004 Saurabh 4001 10.10.2020 45000
1005 Shivani 4001 15.07.2019 42000
1007 Shyam 4003 21.06.2021 35000

Die folgende Abfrage verwendet den SQL UPDATE-Befehl mit dem logischen Operator IN:

 UPDATE Faculty_Info SET Faculty_Salary = 50000 WHERE Faculty_Dept_ID IN (4002, 4003); 

Diese Abfrage aktualisiert das Gehalt der Fakultäten, deren Dept_Id im IN-Operator der WHERE-Klausel übergeben wird.

Um das Ergebnis der obigen Abfrage zu überprüfen, geben Sie die folgende SELECT-Abfrage in SQL ein:

 SELECT * FROM Faculty_Info; 
Fakultäts-ID Fakultätsvorname Fakultätsnachname Faculty_Dept_Id Faculty_Joining_Date Fakultät_Stadt Fakultätsgehalt
1001 tragen Sharma 4001 02.01.2020 Delhi 20000
1002 Bulbul Roy 4002 31.12.2019 Delhi 50000
1004 Saurabh Roy 4001 10.10.2020 Mumbai 45000
1005 Shivani Singhania 4001 15.07.2019 Kalkutta 42000
1006 Avinash Sharma 4002 11.11.2019 Delhi 50000
1007 Shyam Du küsst 4003 21.06.2021 Lucknow 50000

SQL IN-Operator mit Unterabfrage

In der strukturierten Abfragesprache können wir die Unterabfrage auch mit dem logischen Operator IN verwenden.

Die Syntax des IN-Operators mit Unterabfrage ist unten angegeben:

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Subquery); 

Wenn Sie den IN-Operator mit Unterabfrage verstehen möchten, müssen Sie die beiden unterschiedlichen Tabellen in der Structured Query Language mit der CREATE-Anweisung erstellen.

Die folgende Abfrage erstellt die Faculty_Info-Tabelle in der Datenbank:

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

Die folgende Abfrage erstellt die Abteilungsinfo Tabelle in der Datenbank:

 CREATE TABLE Department_Info ( Dept_Id INT NOT NULL, Dept_Name Varchar(100), Head_Id INT ); 

Die folgenden INSERT-Abfragen fügen die Datensätze der Fakultäten in die Tabelle Faculty_Info ein:

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

Die folgenden INSERT-Abfragen fügen die Datensätze der Abteilungen in die Tabelle Department_Info ein:

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

Die folgende SELECT-Anweisung zeigt die Daten der Faculty_Info-Tabelle an:

 SELECT * FROM Faculty_Info; 

Fakultäts-ID Fakultätsvorname Fakultätsnachname Faculty_Dept_Id Fakultätsadresse Fakultät_Stadt Fakultätsgehalt
1001 tragen Sharma 4001 22 Straße Neu-Delhi 20000
1002 Bulbul Roy 4002 120 Straße Neu-Delhi 38000
1004 Saurabh Roy 4001 221 Straße Mumbai 45000
1005 Shivani Singhania 4001 501 Straße Kalkutta 42000
1006 Avinash Sharma 4002 12 Straße Delhi 28000
1007 Shyam Du küsst 4003 202 Straße Lucknow 35000

Die folgende Abfrage zeigt die Datensätze der Abteilung aus der Tabelle Department_Info:

 SELECT * FROM Department_Info; 
So verwenden Sie IN in SQL

Die folgende Abfrage verwendet den IN-Operator mit einer Unterabfrage:

 SELECT * FROM Faculty_Info WHERE Faculty_Dept_Id IN ( Select Dept_Id FROM Department_Info WHERE Head_Id >= 1007); 

Diese Abfrage zeigt den Datensatz der Fakultäten an, deren Dept_ID der Tabelle Faculty_Info mit der Dept_Id der Tabelle Department_Info übereinstimmt.

Ausgabe:

Fakultäts-ID Fakultätsvorname Fakultätsnachname Faculty_Dept_Id Fakultätsadresse Fakultät_Stadt Fakultätsgehalt
1002 Bulbul Roy 4002 120 Straße Neu-Delhi 38000
1006 Avinash Sharma 4002 12 Straße Delhi 28000
1007 Shyam Du küsst 4003 202 Straße Lucknow 35000

Was ist in SQL NICHT IN?

NOT IN ist ein weiterer Operator in der Structured Query Language, der genau das Gegenteil des SQL IN-Operators ist. Es ermöglicht Ihnen den Zugriff auf Werte aus der Tabelle, die nicht in Klammern des IN-Operators übergeben werden.

Der NOT IN-Operator kann in den SQL-Abfragen INSERT, UPDATE, SELECT und DELETE verwendet werden.

Syntax des NOT IN-Operators:

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

Wenn Sie den NOT IN-Operator in den Anweisungen von SQL verwenden möchten, müssen Sie die angegebenen Schritte in derselben Reihenfolge ausführen:

  1. Erstellen Sie eine Datenbank im SQL-System.
  2. Erstellen Sie die neue Tabelle in der Datenbank.
  3. Fügen Sie die Daten in die Tabelle ein
  4. Sehen Sie sich die eingefügten Daten an
  5. Verwenden Sie den NOT IN-Operator, um die Daten anzuzeigen.

Jetzt erklären wir jeden Schritt einzeln kurz anhand des besten SQL-Beispiels:

Schritt 1: Erstellen Sie die neue Simple-Datenbank

Die folgende Abfrage erstellt das Neue Zivil_Industrie Datenbank im SQL Server:

 CREATE Database Industry; 

Schritt 2: Erstellen Sie die neue Tabelle

String-Verkettung Java

Die folgende Abfrage erstellt die Worker_Info Tabelle in der Zivil_Industrie Datenbank:

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

Schritt 3: Geben Sie die Werte ein

Die folgenden INSERT-Abfragen fügen die Datensätze der Arbeiter in die Tabelle Worker_Info ein:

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

Schritt 4: Sehen Sie sich die Daten der Tabelle an

Die folgende Abfrage zeigt die Daten der Worker_Info-Tabelle an.

 SELECT * FROM Worker_Info; 

Worker_ID Worker_Name Arbeiter_Geschlecht Arbeiter_Alter Worker_Address Arbeiter_Gehalt
1001 tragen Männlich 18 Agra 35000
1002 Bulbul Weiblich 18 Lucknow 42000
1004 Saurabh Männlich zwanzig Lucknow 45000
1005 Shivani Weiblich 18 Agra 28000
1006 Avinash Männlich 22 Delhi 38000
1007 Shyam Männlich 18 Bangalore 20000

Schritt 4: Verwenden Sie den NOT IN-Operator

Die folgende Abfrage verwendet den NOT IN-Operator mit numerischen Daten:

 SELECT * FROM Worker_Info WHERE Worker_salary NOT IN (35000, 28000, 38000); 

Diese SELECT-Abfrage zeigt alle Arbeiter in der Ausgabe an, deren Gehalt nicht im NOT IN-Operator übergeben wird.

Das Ergebnis der obigen Anweisung ist in der folgenden Tabelle dargestellt:

Worker_ID Worker_Name Arbeiter_Geschlecht Arbeiter_Alter Worker_Address Arbeiter_Gehalt
1002 Bulbul Weiblich 18 Lucknow 42000
1004 Saurabh Männlich zwanzig Lucknow 45000
1007 Shyam Männlich 18 Bangalore 20000

Die folgende Abfrage verwendet den logischen Operator NOT IN mit Zeichen- oder Textwerten:

 SELECT * FROM Worker_Info WHERE Worker_Address NOT IN (Lucknow, Delhi); 

Diese Abfrage zeigt den Datensatz aller Arbeiter, deren Adresse nicht im NOT IN-Operator übergeben wird.

Ausgabe:

Worker_ID Worker_Name Arbeiter_Geschlecht Arbeiter_Alter Worker_Address Arbeiter_Gehalt
1001 tragen Männlich 18 Agra 35000
1005 Shivani Weiblich 18 Agra 28000
1007 Shyam Männlich 18 Bangalore 20000