Частина 12.11: Визначення набору значень в базах даних SQLite: оператор IN і SELECT
Привіт, відвідувач сайту ZametkiNaPolyah.ru. Продовжуємо вивчати бази даних і наше знайомство з бібліотекою SQLite3. У цьому записі ми поговоримо про використання SQL оператора IN і команди SELECT в базах даних SQLite. Оператор IN дозволяє робити вибірку даних, при цьому рядки будуть обрані на основі порівняння значень стовпців із заздалегідь визначеним набором, який вказується в операторі IN. Часто ви можете зустріти підзапити SELECT з використання оператора IN, але про це ми поговоримо в іншому записі.
Визначення набору значень в базах даних SQLite: оператор IN і SELECT
З цього запису ви дізнаєтеся:
- як SQL оператор IN дозволяє визначити набір значень, з яким будуть порівнювати рядки при запиті до бази даних;
- подивіться приклад використання IN і SELECT в базах даних SQLite3;
- і в завершенні статті знайдете інформацію про те, з якими командами, крім SELECT, можна використовувати оператор IN.
Як визначити набір значень в базах даних SQLite за допомогою оператора IN і команди SELECT
Бувають ситуації, коли нам потрібно зробити вибірку даних з бази даних SQLite не в якомусь діапазоні, а за заздалегідь відомим набору значення. Такий набір значень нам дозволяє визначити SQL оператор IN разом з командою SELECT. SQL запит SELECT може використовувати оператор IN не тільки для визначення заздалегідь відомого набору значень, але для створення підзапиту, коли значення невідомі, але про це в іншій частині теми.
SQL оператор IN - це логічний оператор, він відноситься до тієї ж групи операторів, що і AND і OR. а так же оператор LIKE, який реалізує пошук за шаблоном в базах даних. Оператор IN в лівій частині приймає значення стовпця, а в правій частині визначається набір значень, з якими порівнюються значення стовпця в процесі виконання команди SELECT.
Мабуть, це все що потрібно знати про використання оператора IN і команди SELECT. тепер можемо попрактикуватися в складання запит SELECT з оператором IN і спробувати визначити свої набори значень.
Приклади використання оператора IN і SELECT в базах даних SQLite3
IN і SELECT часто використовуються разом, зазвичай оператор IN використовується для створення підзапиту SELECT, але в даному випадку ми розглянемо приклад простого використання оператора IN з командою SELECT, а в наступній частині ми подивимося, як зробити підзапит. Давайте спробуємо визначити набір значень IN. Для цього створимо таблицю в базі даних SQLite за допомогою команди CREATE:
Тепер комбінація NOT IN і SELECT дала нам парні рядки, тому що вони не входять в певний набір значень.
Використання оператора IN з іншими командами SQLite3
Ми можемо використовувати SQL оператор IN не тільки з командою SELECT. але і з іншими командами бібліотеки SQLite. Ми не будемо говорити про оператори управління транзакціями і команди визначення доступу до даних. так всередині перших можна писати які завгодно SQL пропозиції, а друге в SQLite немає.
- Ви можете виконати операцію додавання рядків в таблицю бази даних за допомогою команди INSERT і підзапиту SELECT, тому можна стверджувати, що INSERT і IN можна використовувати разом.
- Коли ви видаляєте рядки з таблиці бази даних. то використовуєте клаузулу WHERE, щоб вибрати рядки для видалення, тому можете використовувати оператор IN і команду DELETE.
- Якщо у вас є необхідність змінити дані в базі даних. то ви використовуєте команду UPDATE і клаузулу WHERE, щоб точно визначити рядки, що вимагають модифікації, відповідно, ви можете використовувати оператор IN.
- Ми можемо створювати таблиці на основі підзапиту SELECT, отже ми можемо використовувати оператор IN.
- Для видалення таблиць і інших об'єктів бази даних є команда DROP. а оператор IN маніпулює даними, тому використовувати їх разом ми не можемо.
- Для зміни таблиць і інших об'єктів бази даних існує команда ALTER. знову ж таки, команда ALTER працює на рівні об'єктів, а оператор IN на рівні значень.
Оператор IN і команда SELECT дозволяють визначити набір значень. які будуть відображені в результаті вибірки, не забувайте про те, що оператор IN бінарний і виробляє порівняння значень стовпця з заданими значеннями. Будьте обережні використовуючи оператор IN і SELECT. адже SQLite - це СУБД з динамічною типізацією даних. в якій немає типів даних, а є класи даних і афіновані типи даних стовпців.