logo

Як використовувати IN в SQL

У цій статті про SQL ви дізнаєтесь, як використовувати ключове слово IN у запитах до бази даних SQL.

Що таке ключове слово IN у SQL?

The IN це логічний оператор на мові структурованих запитів, який дозволяє користувачам бази даних визначати більше одного значення в реченні WHERE.

Речення WHERE з оператором IN показує ті записи в результаті, які збігаються з заданим набором значень. Ми також можемо вказати підзапит у круглих дужках оператора IN.

Ми можемо використовувати оператор IN із запитами INSERT, SELECT, UPDATE і DELETE у базі даних SQL.

Оператор IN у SQL замінює процес кількох умов АБО в запитах.

Синтаксис оператора 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); 

Якщо ви хочете використовувати оператор IN в операторах SQL, ви повинні виконати наведені нижче кроки в тій же послідовності:

  1. Створення бази даних на SQL.
  2. Створіть нову таблицю SQL.
  3. Вставте дані в таблицю.
  4. Переглянути вставлені дані.
  5. Використовуйте оператор SQL IN для відображення даних таблиці.

Тепер ми збираємося коротко пояснити кожен крок один за одним на найкращому прикладі SQL:

Крок 1: Створіть просту нову базу даних

Першим кроком є ​​створення нової бази даних мовою структурованих запитів.

Наступний оператор CREATE створює новий Механічний_технікум База даних на сервері SQL:

 CREATE Database Mechanical_College; 

Крок 2: Створіть нову таблицю

Тепер використовуйте такий синтаксис SQL, який допоможе створити нову таблицю в базі даних:

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

Наступний оператор CREATE створює Факультет_Інфо таблиці в Механічний_технікум База даних:

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

Крок 3: Вставте дані в таблицю

Наступні запити INSERT вставляють записи про факультети в таблицю Faculty_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); 

Крок 4: Перегляньте вставлені дані

Наступний оператор SELECT відображає дані таблиці Faculty_Info:

 SELECT * FROM Faculty_Info; 

Faculty_Id Факультет_Ім'я Факультет_Прізвище Faculty_Dept_Id Факультет_Дата_вступу Факультет_місто Факультет_Зарплата
1001 ведмідь Шарма 4001 2020-01-02 Делі 20000
1002 Бюльбюль Рой 4002 2019-12-31 Делі 38000
1004 Саурабх Рой 4001 2020-10-10 Мумбаї 45000
1005 Шивані Сінгханія 4001 2019-07-15 Колката 42000
1006 Авінаш Шарма 4002 2019-11-11 Делі 28000
1007 Шям Ви цілуєтесь 4003 2021-06-21 Лакнау 35000

Крок 5. Використовуйте оператор IN, щоб переглядати дані таблиці Faculty_Info різними способами

Наступний запит використовує числові значення з оператором IN:

команди Linux
 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); 

Цей запит показує лише записи тих факультетів, чия зарплата передається в операторі IN пропозиції WHERE.

Вихід:

Faculty_Id Факультет_Ім'я Faculty_Dept_Id Факультет_Дата_вступу Факультет_Зарплата
1002 Бюльбюль 4002 2019-12-31 38000
1004 Саурабх 4001 2020-10-10 45000
1005 Шивані 4001 2019-07-15 42000
1007 Шям 4003 2021-06-21 35000

Наступний запит використовує текстові або символьні значення з логічним оператором IN:

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

Цей запит показує лише записи тих факультетів, місто яких включено в дужки оператора IN у реченні WHERE.

Вихід:

Faculty_Id Факультет_Ім'я Факультет_Дата_вступу Факультет_місто
1004 Саурабх 2020-10-10 Мумбаї
1005 Шивані 2019-07-15 Колката
1007 Шям 2021-06-21 Лакнау

Наступний запит використовує формат DATE з логічним оператором 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); 

Цей запит показує лише ті записи факультетів, дата приєднання яких передана в операторі IN пропозиції WHERE.

Вихід:

Faculty_Id Факультет_Ім'я Faculty_Dept_Id Факультет_Дата_вступу Факультет_Зарплата
1001 ведмідь 4001 2020-01-02 20000
1004 Саурабх 4001 2020-10-10 45000
1005 Шивані 4001 2019-07-15 42000
1007 Шям 4003 2021-06-21 35000

Наступний запит використовує команду SQL UPDATE з логічним оператором IN:

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

Цей запит оновлює зарплату тих факультетів, чий Dept_Id передається в операторі IN пропозиції WHERE.

Щоб перевірити результат наведеного вище запиту, введіть такий запит SELECT у SQL:

 SELECT * FROM Faculty_Info; 
Faculty_Id Факультет_Ім'я Факультет_Прізвище Faculty_Dept_Id Факультет_Дата_вступу Факультет_місто Факультет_Зарплата
1001 ведмідь Шарма 4001 2020-01-02 Делі 20000
1002 Бюльбюль Рой 4002 2019-12-31 Делі 50000
1004 Саурабх Рой 4001 2020-10-10 Мумбаї 45000
1005 Шивані Сінгханія 4001 2019-07-15 Колката 42000
1006 Авінаш Шарма 4002 2019-11-11 Делі 50000
1007 Шям Ви цілуєтесь 4003 2021-06-21 Лакнау 50000

Оператор SQL IN із підзапитом

У мові структурованих запитів ми також можемо використовувати підзапит із логічним оператором IN.

Синтаксис оператора IN із підзапитом наведено нижче:

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

Якщо ви хочете зрозуміти оператор IN із підзапитом, вам потрібно створити дві різні таблиці мовою структурованих запитів за допомогою оператора CREATE.

Наступний запит створює таблицю Faculty_Info у базі даних:

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

Наступний запит створює Відділ_Інфо таблиця в базі даних:

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

Наступні запити INSERT вставляють записи про факультети в таблицю Faculty_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); 

Наступні запити INSERT вставляють записи відділів у таблицю 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); 

Наступний оператор SELECT відображає дані таблиці Faculty_Info:

 SELECT * FROM Faculty_Info; 

Faculty_Id Факультет_Ім'я Факультет_Прізвище Faculty_Dept_Id Факультет_Адреса Факультет_місто Факультет_Зарплата
1001 ведмідь Шарма 4001 22 вул Нью-Делі 20000
1002 Бюльбюль Рой 4002 120 вул Нью-Делі 38000
1004 Саурабх Рой 4001 221 вул Мумбаї 45000
1005 Шивані Сінгханія 4001 501 вул Колката 42000
1006 Авінаш Шарма 4002 12 вул Делі 28000
1007 Шям Ви цілуєтесь 4003 202 вул Лакнау 35000

Наступний запит показує записи відділу з таблиці Department_Info:

 SELECT * FROM Department_Info; 
Як використовувати IN в SQL

У наступному запиті використовується оператор IN із підзапитом:

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

Цей запит відображає записи тих факультетів, чий Dept_ID таблиці Faculty_Info збігається з Dept_Id таблиці Department_Info.

Вихід:

Faculty_Id Факультет_Ім'я Факультет_Прізвище Faculty_Dept_Id Факультет_Адреса Факультет_місто Факультет_Зарплата
1002 Бюльбюль Рой 4002 120 вул Нью-Делі 38000
1006 Авінаш Шарма 4002 12 вул Делі 28000
1007 Шям Ви цілуєтесь 4003 202 вул Лакнау 35000

Що НЕ є IN у SQL?

NOT IN — це ще один оператор у мові структурованих запитів, протилежний оператору SQL IN. Це дозволяє отримати доступ до тих значень з таблиці, які не проходять у круглих дужках оператора IN.

Оператор NOT IN можна використовувати в SQL-запитах INSERT, UPDATE, SELECT і DELETE.

Синтаксис оператора 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); 

Якщо ви хочете використовувати оператор NOT IN в операторах SQL, ви повинні виконати наведені кроки в тій же послідовності:

  1. Створити базу даних в системі SQL.
  2. Створіть нову таблицю в базі даних.
  3. Вставте дані в таблицю
  4. Переглянути вставлені дані
  5. Для перегляду даних використовуйте оператор NOT IN.

Тепер ми збираємося коротко пояснити кожен крок один за одним на найкращому прикладі SQL:

Крок 1: Створіть просту нову базу даних

Наступний запит створює новий Цивільна_промисловість База даних на сервері SQL:

 CREATE Database Industry; 

Крок 2: Створіть нову таблицю

Наступний запит створює Worker_Info таблиці в Цивільна_промисловість База даних:

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

Крок 3: Вставте значення

Наступні запити INSERT вставляють записи працівників у таблицю 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); 

Крок 4: Перегляньте дані таблиці

Наступний запит відображає дані таблиці Worker_Info.

 SELECT * FROM Worker_Info; 

Worker_ID Worker_Name Worker_Gender Worker_Age Адреса_працівника Робітник_Зарплата
1001 ведмідь Чоловік 18 Агра 35000
1002 Бюльбюль Жінка 18 Лакнау 42000
1004 Саурабх Чоловік двадцять Лакнау 45000
1005 Шивані Жінка 18 Агра 28000
1006 Авінаш Чоловік 22 Делі 38000
1007 Шям Чоловік 18 Бангалор 20000

Крок 4: Використовуйте оператор NOT IN

У наступному запиті використовується оператор NOT IN із числовими даними:

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

Цей запит SELECT показує всіх працівників у вихідних даних, чия зарплата не передається в операторі NOT IN.

Результат наведеного вище твердження показано в наступній таблиці:

Worker_ID Worker_Name Worker_Gender Worker_Age Адреса_працівника Робітник_Зарплата
1002 Бюльбюль Жінка 18 Лакнау 42000
1004 Саурабх Чоловік двадцять Лакнау 45000
1007 Шям Чоловік 18 Бангалор 20000

У наступному запиті використовується логічний оператор NOT IN із символьними або текстовими значеннями:

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

Цей запит показує записи всіх працівників, адреса яких не передана в операторі NOT IN.

Вихід:

Worker_ID Worker_Name Worker_Gender Worker_Age Адреса_працівника Робітник_Зарплата
1001 ведмідь Чоловік 18 Агра 35000
1005 Шивані Жінка 18 Агра 28000
1007 Шям Чоловік 18 Бангалор 20000