- •Контрольні запитання
- •Контрольні запитання
- •Які головні переваги реляційної моделі?
- •Які види ключів існують і навіщо вони потрібні?
- •Функціональна залежність
- •Найбільш простий вигляд оператора select
- •2. Використання секції where
- •2.1. Порівняння значення стовпчика із константою
- •2.2. Правила виконання однотабличних запитів на вибірку
- •3. Багатотабличні запити
- •3.1. Правила виконання багатотабличних запитів на вибірку
- •4. Використання псевдонімів таблиць
- •Секція order by – визначення порядку сортування
- •Групування записів
- •Правила виконання sql–запиту на вибірку (з врахуванням секції group by)
- •Кілька стовпчиків групування
- •8.3. Обмеження на запити з групуванням
- •8.4. Значення null в стовпчиках групування
- •Правила виконання sql–запиту на вибірку (з врахуванням секції having)
- •9.2. Обмеження на умову відбору груп
- •Значення null і умови відбору груп
- •Секція having без секції group by
- •Складні умови відбору у запитах на вибірку даних Використання логічних виразів
- •Порівняння
- •Перевірка на належність діапазону значень (between…and…)
- •Перевірка на належність множині значень (in)
- •Перевірка на рівність значенню null (is null)
- •Символ пропуску
- •2.1. Режими аутентифікації
- •2.2. Компоненти структури безпеки
- •2.3. Ролі сервера
- •2.4. Ролі баз даних
- •2.5. Ролі програми
- •2.6. Захист даних
- •Шифрування даних
- •Обмеження доступу до файлів sql server
- •3.1. Права доступу
- •3.2. Права на доступ до об'єктів баз даних
- •3.3. Заборона доступу
Порівняння
Коли порівнюються два вирази, результатом може бути одне з трьох:
-
якщо порівняння – істинне, то результат перевірки матиме значення TRUE;
-
якщо порівняння – хибне, то результат перевірки буде мати значення FALSE;
-
якщо хоча би один із двох виразів має значення NULL, то результат перевірки буде мати значення NULL.
Синтаксична діаграма виразу:
На практиці найчастіше використовуються такі порівняння:
або
Перевірка на належність діапазону значень (between…and…)
Вивести дані про всі відпуски товару, у яких кількість (в одиницях) відпущеного товару лежить в діапазоні від 1000 до 3000:
SELECT *
FROM Vidpusk
WHERE Kilkist BETWEEN 1000 AND 3000
Типи виразу, нижнього та верхнього значень – повинні бути сумісними.
Перевірка
X BETWEEN A AND B
повністю еквівалентна перевірці
( X > = A ) AND ( X <= B)
Правила опрацювання значень NULL в перевірці BETWEEN…AND…
-
Якщо вираз, що перевіряється, має значення NULL, або якщо обидва вирази, що визначають діапазон, дорівнюють NULL, то перевірка BETWEEN ... AND… дає результат NULL.
2) Якщо вираз, що визначає нижню границю діапазону має значення NULL, то перевірка BETWEEN ... AND… дає результат FALSE у випадку, коли вираз, що перевіряється, має значення, більше ніж значення верхньої границі діапазону; і дає результат NULL в іншому випадку:
3) Якщо вираз, що визначає верхню границю діапазону, має значення NULL, то перевірка BETWEEN ... AND… дає результат FALSE у випадку, коли вираз, що перевіряється, має значення, менше ніж значення нижньої границі діапазону; і дає результат NULL в іншому випадку:
При перевірці BETWEEN ... AND… верхня і нижня межа вважаються частинами діапазону. Вираз, що перевіряється, нижня межа та верхня межа діапазону – можуть вказуватися виразами, але на практиці, як правило:
вираз що перевіряється – вказується стовпчик;
нижня та верхня межа – вказуються константи.
Хоча і вираз, що перевіряється, і нижня та верхня межа – можуть бути виразами, на практиці, як правило, вираз, що перевіряється – представляє собою стовпчик, а нижня та верхня межа – визначається константами.
Перевірка на належність множині значень (in)
NOT ,
Вивести дані про всі відпуски товару, в яких кількість відпущеного товару (в одиницях) дорівнює 100, 1000 до 3000:
SELECT *
FROM Vidpusk
WHERE Kilkist IN (100, 1000, 3000)
Перевірка
X IN (A, B, C)
повністю еквівалентна перевірці
( X = A ) OR ( X = B) OR (X = C),
але перевірка IN – набагато ефективніша.
Рекомендується уникати множин, які складаються лише із одного елемента
X IN (A)
- таку перевірку краще замінювати звичайним порівнянням:
X = A
Якщо вираз, що перевіряється, має значення NULL, то результатом перевірки IN буде NULL:
NULL IN (...) → NULL
Всі елементи в списку значень множини повинні бути того самого типу, який повинен бути сумісний із типом виразу, що перевіряється.
Зауваження:
Є ще одна форма перевірки IN, в який список значень формується вкладеним оператором SELECT.
Цей варіант – розглядається в розділі “Вкладені запити”.