- •Тема 5. Мова реляційних запитів sql.
- •Роль та історія розвитку sql.
- •Простий приклад
- •Історія
- •Стандарти
- •3. Декларативність
- •Питання сумісності
- •Переваги стандартів sql
- •1. Незалежність від конкретної субд
- •2. Наявність стандартів
- •Недоліки стандартів sql
- •1. Невідповідність реляційної моделі даних
- •Коротко про стандарт sql:2003
- •Cтворення таблиці
- •Видалення таблиці
- •Вираз select
- •Частина from
- •Частина where
- •Відповідність шаблону
- •Значення null
- •Частина order by
- •Приклад нотації для визначення оператора select в Oracle
- •Декартів добуток
- •Тета-з’єднання
- •Натуральне з’єднання
Частина from
Частина FROM задає імена таблиць і уявлень, які містять поля, перераховані в операторі SELECT. Необов'язковий параметр псевдоніма - це скорочення, яке встановлюється для імені таблиці.
Обробка елементів оператора SELECT виконується в наступній послідовності:
FROM – визначаються імена використовуваних таблиць;
WHERE – виконується фільтрація рядків об'єкта відповідно до заданих умовами;
GROUP BY – утворюються групи рядків, які мають одне і те ж значення у вказаному стовпці;
HAVING – фільтруються групи рядків об'єкта відповідно до зазначеного умовою;
SELECT – встановлюється, які стовпці повинні бути присутніми у вихідних даних;
ORDER BY – визначається впорядкованість результатів виконання операторів.
Порядок пропозицій і фраз в операторі SELECT не може бути змінений. Тільки дві пропозиції SELECT та FROM є обов'язковими, всі інші можуть бути опущені. SELECT – закрита операція: результат запиту до таблиці являє собою іншу таблицю. Існує безліч варіантів запису даного оператора, що ілюструється наведеними нижче прикладами.
Приклад 1. Скласти список відомостей про всіх клієнтів.
SELECT * FROM Клієнт
Частина where
За допомогою WHERE-параметра користувач визначає, які блоки даних з наведених у списку FROM таблиць з'являться в результаті запиту. За ключовим словом WHERE слід перелік умов пошуку, що визначають ті рядки, які повинні бути вибрані при виконанні запиту. Існує п'ять основних типів умов пошуку (або предикатів):
Порівняння: порівнюються результати обчислення одного виразу з результатами обчислення іншого.
Діапазон: перевіряється, чи потрапляє результат обчислення виразу в заданий діапазон значень.
Належність множині: перевіряється, чи належить результат обчислень вираження заданому безлічі значень.
Відповідність шаблону: перевіряється, чи відповідає деякий строкове значення заданим шаблоном.
Значення NULL: перевіряється, чи містить даний стовпець визначник NULL (невідоме значення).
Приклад 2. Показати всі операції відпуску товарів об'ємом більше 20.
SELECT * FROM Угода
WHERE Кількість >20
Приклад 3. Вивести список товарів, ціна яких більше або дорівнює 100 і менше або дорівнює 150.
SELECT Назва, Ціна
FROM Товар
WHERE Ціна>=100 And Ціна<=150
Відповідність шаблону
За допомогою оператора LIKE можна виконувати порівняння виразу з заданим шаблоном, в якому допускається використання символів-замінників:
Символ % – замість цього символу може бути підставлено будь-яку кількість довільних символів.
Символ _ замінює один символ рядка.
[] – замість символу рядка буде підставлений один з можливих символів, зазначений у цих обмежниках.
[^] – замість відповідного символу рядка будуть підставлені всі символи, крім зазначених у обмежниках.
Приклад 4. Знайти клієнтів, у яких у номері телефону друга цифра – 4.
SELECT Клієнт.Фамілія, Клієнт.Телефон
FROM Клієнт
WHERE Клієнт.Телефон LIKE '_4%'
Значення null
Оператор IS NULL використовується для порівняння поточного значення зі значенням NULL, – спеціальним значенням, що вказує на відсутність будь-якого значення. NULL – це не те ж саме, що знак пробілу (пробіл - допустимий символ) або нуль (0 - допустиме число). NULL відрізняється і від рядка нульової довжини (порожнього рядка).
Приклад 5. Знайти співробітників, у яких немає телефону (поле Телефон не містить ніякого значення).
SELECT Фамілія, Телефон
FROM Клієнт
WHERE Телефон IS NULL
