У цій статті про 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, ви повинні виконати наведені нижче кроки в тій же послідовності:
- Створення бази даних на SQL.
- Створіть нову таблицю SQL.
- Вставте дані в таблицю.
- Переглянути вставлені дані.
- Використовуйте оператор 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 із підзапитом:
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, ви повинні виконати наведені кроки в тій же послідовності:
- Створити базу даних в системі SQL.
- Створіть нову таблицю в базі даних.
- Вставте дані в таблицю
- Переглянути вставлені дані
- Для перегляду даних використовуйте оператор 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 |