
Використання like
Для порівняння рядків замість операцій =, !=, <> можна використовувати операцію LIKE, яка виконує порівняння за частковим співпадінням. Часткове співпадіння значень доцільно перевіряти, наприклад, коли відома тільки початкова частина прізвища:
select prizv
from stat
where prizv like ‘Ac%’
Тут ми отримаємо список прізвищ, які починаються на “Ac”. Звичайна форма для стовпця текстового типу дозволяє відшукати всі значення вказаного стовпця, які відповідають зразку, заданому „текстовою константою”.
У виразах операції LIKE допускається використання шаблону, в якому можна використовувати всі алфавітно-цифрові символи (з врахуванням регістра). При цьому два символи мають спеціальне призначення:
% - заміняє будь-яку кількість символів, в тому числі й нульовий;
_ - заміняє один символ.
З допомогою шаблона можна виконати перевірку на часткове співпадіння не тільки початкових символів рядка, але й знайти входження заданого фрагмента в будь-яку частину рядкового значення. Наприклад:
select prizv
from stat
where prizv like '% р %'
Перед операцією LIKE можна використовувати описувач NOT, який змінює результат виконання операції на протилежне значення і перевіряє значення виразів на неспівпадіння.
Для перевірки нульового значення виразу служить операція IS NULL, яка має наступний формат:
<Вираз> IS [NOT] NULL
Наприклад,
select *
from stat
where is null
У цьому запиті відбираються всі поля записів таблиці stat, які мають нульові значення.
Використання IN
Перевірка на входження значення виразу в список виконується з допомогою операції IN наступного формату:
<Вираз> [NOT] IN <Список значень>
Цю операцію зручно виконувати, якщо вираз може приймати невелику кількість різних значень. Наприклад:
select cod, prizv
from stat
where osvita in (‘середня’, ‘вища’)
У результаті отримаємо вибірку кодів і прізвищ всіх працівників з середньою і вищою освітою.
Використання BETWEEN
Операція BETWEEN виконує перевірку входження значення в діапазон. Вона має такий формат:
<Вираз> [NOT] BETWEEN
<Мінімальне значення> AND <Максимальне значення>
При виконанні цієї операції в набір даних включаються записи, для яких значення виразу більше або рівне мінімальному, а також менше або рівне максимальному значенням. Описувач NOT змінює результат операції на протилежний.
Розглянемо приклад:
select *
from stat
where data_nar between ‘01/01/1960’ and ‘03/12/1980’
У результаті виконання такого запиту отримаємо набір записів, для яких дата народження (поле data_nar) знаходиться в діапазоні з 1 січня 1960 року до 3 грудня 1980 року.
Використання HAVING
Операція HAVING відіграє таку ж роль для груп, як і WHERE для рядків. Ця операція включається в оператор при наявності GROUP BY.
Складені критерії відбору записів
При відборі можна використовувати декілька операцій, задаючи тим самим складені критерії відбору записів. Складений критерій (логічний вираз) складається з:
простих умов;
логічних операцій: AND (логічне І), OR (логічне АБО), NOT(логічне НЕ);
круглих дужок.
В мові SQL пріоритет операцій порівняння вищий за пріоритет логічних операцій. Для зміни порядку виконання операцій використовуються круглі дужки.
Приклади запитів із складеним критерієм відбору:
select prizv
from stat
where osvita = ‘вища’ and adres =’Львів’
Запит відбирає прізвища працівників, які мають вищу освіту і домашня адреса – Львів.
select prizv, name
from stat
where osvita = ‘вища’ or osvita = ‘незакінчена вища’
Запит відбирає прізвища та імена працівників, які мають вищу або незакінчену вищу освіту.
select prizv
from stat
where (osvita = ‘вища’) and
(data_nar between ‘01.01.1960’ and ‘03.12.1980’)
Запит відбирає прізвища працівників, які мають вищу освіту і народилися в період з 1 січня 1960 року до 3 грудня 1980. У даному логічному виразі прості умови записані у дужках, але це не обов’язково, так як пріоритет операцій порівняння вищий від пріоритету логічних операцій.