Прості та складні запити відбору даних в SQL

Критерій відбору являє собою вираз булівського типу, в якому можна використовувати наступні операції:

  1. Операції порівняння («=» — рівне;  «>» — більше; «<» — менше; «>=» — більше або рівне; «<=» — менше або рівне; «!=» — не дорівнює; «!>» — не більше; «!<» — не менше).
  2. LIKE — порівняння за шаблоном.
  3. IS NULL — перевірка на нульове значення.
  4. IN — перевірка на входження.
  5. BETWEEN — перевірка на входження в діапазон.

В простому критерії відбору використовується одна операція. Для операції порівняння чи порівняння за шаблоном, критерій відбору має наступний формат:

<Вираз 1><Операція порівняння><Вираз 2>

Де «Вираз 1» і «Вираз 2» може містити  імена полів, функції, константи, знаки арифметичних операцій і круглі дужки. Наприклад, нехай ми маємо деякі таблицю «Cars», яка містить інформацію про деякі автомобілі:

оператор select

Серед автомобілів, які містяться в даній таблиці нам потрібно вибрати ті, ціна яких перевищує 10000. Оператор, який реалізує даний критерій відбору матиме наступний вигляд:

SELECT Model FROM Cars WHERE Price >= 10000;

Результатом даного запиту буде наступна таблиця:

Оператор select

Для порівняння рядків в SQL можна, також використовувати операцію LIKE, яка виконує відбір по частковому співпвдінню. Дану операцію доцільно використовувати в тому випадку, коли, наприклад, відомо тільки початок прізвища чи початок назви предмета. Розглянемо приклад з таким запитом:

SELECT Model FROM Cars WHERE Model LIKE «BMW 318»;

В результаті отримаємо список автомобілів, марка яких рівна «bmw 318».

Оператор select

У виразах операції LIKE  дозволено використання будь-яких символів з урахуванням регістра. При цьому два символи мають спеціальне призначення:

  1. "%" — будь-який рядок довжиною від нуля і більше символів;
  2. "_" — будь-який одинарний символ.

Тобто, з допомогою даних символів ми можемо провіряти не тільки співпадіння початкових символів рядка, а і будь-яке співпадіння у будь-якій частині. Наприклад:

SELECT Model FROM Cars WHERE Model LIKE «%rce%»;

В результаті ми отримаємо список автомобілів назви яких не містять символів «rce».

Оператор select

Перед операцією LIKE можна, також, використовувати специфікатор NOT, який змінює результат виконання операції на протилежне значеня, тобто, якщо ми попередній запит сформуємо наступним чином:

SELECT Model FROM Cars WHERE Model NOT LIKE «%rce%»;

то в результаті ми отримаємо список автомобілів у назвах яких не містяться символи «rce».

Оператор select

Для того, щоб перевірити виразу на нульове значиння, використовують операцію IS NULL, яка має наступний формат:

<Вираз> IS [NOT] NULL

Приклад:

SELECT * FROM Cars WHERE Price IS NULL;

В даному запиті проводиться вибірка всіх полів таблиці Cars для яких ціна являється не визначеною. В нашому випадку таких автомобілів немає, тому результуюча таблиця не міститиме жодного запиту.

Перевірку на входження значення виразу у список виконується з допомогою операції IN наступним чином:

<Вираз> [NOT] IN <Список значень>

Дану операцію зручно використовувати, коли вираз може приймати відносно невелику кількість різниз значень. Ось приклад відповідного запиту та результат його виконання:

SELECT * FROM Cars WHERE Model IN ("BMW 318", «Jaguar»);

Оператор select

Операція BETWEEN виконує перевірку на входження у певний діапазон і має наступний формат:

<Вираз> [NOT] BETWEEN <Мінімальна величина> AND <Максимальна величина>

При виконанні даної операції у результуючий набір даних попадають ті записи, для яких значення виразу більше або дорівнює мінімальній величині а твкож менше або дорівнює максимальній величині значень.

Складний запит відбору даних в мові SQL складаєть з:

  1. Простих умов відбору.
  2. Логічних операцій: AND, OR, NOT.
  3. Круглих дужок.

Зауваження: У мові SQL пріоритет операцій порівняння вищий за пріоритет логічних операцій. Для зміни порядку виконання операцій використовуються круглі дужки.

Приклад запиту зі складним критерієм відбору:

SELECT * FROM Cars WHERE (Price > 5000) AND (Year BETWEEN «2000» AND «2005») ;

Оператор select

Тут проводиться відбір усіх записів таблиці Cars ціна яких є більшою за 5 тисяч і рік випуску яких є більшим або рівним 2000, а також меншим або рівним 2005. В даному логічному виразі прості умови вкладені в дужки, що є необов'язково, оскільки пріоритет операцій порівняння вищий за пріоритет логічних операцій.

Зазначимо, що операції BETWEEN та IN також реалізують логічні операції (BETWEEN — логчне «і», а IN - логічне «або»).

Матеріал був корисним, поділись в соціальних мережах:

Якщо тобі сподобалась дана тема, залиш свій коментар