- •4.1. Історія мови sql та огляд її можливостей
- •4.2. Засоби пошуку даних
- •4.2.1. Основні конструкції мови, призначені для вибирання даних
- •4.2.2. Вирази, умови та оператори
- •4.2.3. Вибирання з кількох таблиць
- •4.2.4. Використання агрегатних функцій
- •4.2.5. Фраза group by. Групування таблиці за рядками
- •4.2.6. Фраза having. Умова вибирання для груп рядків
- •4.2.8. Порядок обчислення запитів
- •4.2.9. Підзапити
- •4.2.7. Фраза order by. Впорядкування рядків
- •4.2.10. Використання предикатів any, all, exists та in
- •4.2.11. Використання теоретико-множинних операторів
- •4.2.12. Запити, в яких реалізується квантор загальності
- •4.2.13, Використання невизначених значень
- •4.3. Засоби маніпулювання даними
- •4.3.1. Додавання рядків до таблиці. Оператор insert
- •4.3.2. Оновлення даних. Оператор update
- •4.3.3. Видалення рядків таблиці. Оператор delete
- •4.4. Операції над схемою бази даних
- •4.4.1. Створення бази даних. Оператор create database
- •4.4.2. Створення таблиці. Оператор create table
- •4.5.2. Використання індексів
- •4.6. Транзакції
- •4.6.1. Початок і завершення транзакції
- •4.6.2. Скасування транзакції. Точки збереження
- •4.7. Тригери
- •4.8. Додаткові можливості
4.2.2. Вирази, умови та оператори
У мові SQL існує багато різновидів виразів, у яких використовуються дані різних типів - рядки, числа, логічні значення. Конструкція SELECT...FROM...WHERE також є виразом, не кажучи вже про просте згадування імені стовпця у фразі SELECT.
Умова — це вираз, що повертає логічне значення — TRUE чи FALSE. Умовні вирази обов'язково використовуються у фразі WHERE, а також можуть застосовуватися в інших фразах, наприклад SELECT. Прикладом умовного виразу є конструкція Посада = <професор>.
Оператори — це конструкції, що використовуються у виразах для означення певних дій над даними. Є кілька типів операторів: арифметичні, логічні, теорети-ко-множинні, оператори порівняння, оператори над рядками. У конкретних системах списки цих операторів можуть відрізнятися, зокрема бути ширшими, ніж наведений далі список.
4 Арифметичні оператори: +, -,*,/.
4 Оператор зчеплення рядків 11.
4 Теоретико-множинні оператори: UNION, INTERSECT, EXCEPT (або MINUS).
4 Логічні оператори: AND, OR, NOT.
4 Оператори порівняння: >, <, =, <>, >=, <=.
Оператори порівняння, їхнє призначення та приклади використання наведені в табл. 4.1.
Таблиця 4.1. Оператори порівняння
Оператор
Приклад
Призначення
Перевірка на рівність
Перевірка на нерівність
Перевірка, чи одне значення більше або менше іншого
SELECT * FROM КАФЕДРА WHERE Фонд = 1500
|= *= О. -ш
SELECT * FROM КАФЕДРА WHERE Фонд != 1500
SELECT * FROM КАФЕДРА
WHERE Фонд > 1500
SELECT * FROM КАФЕДРА
WHERE Фонд < 1500
Перевірка, чи одне значення не менше або не більше іншого
SELECT * FROM ФАКУЛЬТЕТ WHERE Фонд >= 1500 SELECT * FROM ФАКУЛЬТЕТ WHERE Фонд <= 1500
IN
Перевірка на належність елементу множині
SELECT * FROM ВИКЛАДАЧ WHERE Посада IN ("професор"."доцент") SELECT * FROM ВИКЛАДАЧ WHERE Посада IN (SELECT Посада
FROM ВИКЛАДАЧ
WHERE tel =
"5261815")
NOT IN
Еквівалентний != ALL. Перевірка на неналежність елементу множині
SELECT * FROM ВИКЛАДАЧ WHERE Посада NOT IN ("професор"."доцент") SELECT * FROM ВИКЛАДАЧ WHERE Посада NOT IN (SELECT Посада
FROM ВИКЛАДАЧ
WHERE tel =
"5261815")
ANY, SOME
Використовуються разом із предикатом =, ! =, >, <, <= або >=. Перевіряють, чи істинний цей предикат хоча б для одного елементу множини, заданої у правій частині оператора, відносно елементу, заданого в лівій частині
SELECT * FROM ФАКУЛЬТЕТ
WHERE Фонд = ANY (SELECT Фонд FROM ФАКУЛЬТЕТ WHERE Корпус = 7)
Таблиця 4.1 (продовження)
Приклад
Оператор
Призначення
SELECT * FROM ФАКУЛЬТЕТ WHERE Фонд >= ALL(1400.3000)
SELECT Назва
FROM Факультет
WHERE EXISTS (SELECT * FROM Кафедра WHERE Кафедра^ = Факультет. #F)
SELECT Назва FROM Кафедра WHERE Фонд IS NULL
ALL
Використовується разом з предикатом =, ! =, >, <, <= або >=. Перевіряє, чи істинний цей предикат для всіх елементів множини, заданої у правій частині оператора, відносно елементу, заданого в лівій частині
EXISTS
Повертає TRUE, якщо підзапит, до якого застосовується оператор, містить хоча б один рядок
IS [NOT] NULL Перевірка на рівність значенню NULL
Розглянемо на прикладах використання цих операторів. Запит 4.1 '
Визначити групи, де кількість студентів становить від 40 до 50 осіб, а також курси, які їм відповідають.
SELECT Номер. Курс
FROM ГРУПА
WHERE Кількість >= 40 AND Кількість <= 50
Запит 4.2
Визначити прізвища й посади професорів та асистентів.
SELECT Прізвище, Посада
FROM ВИКЛАДАЧ
WHERE Посада = "професор" OR Посада = "асистент"
