
- •1. Розвиток і загальна характеристика мови
- •2. Особливості та переваги мови sql
- •3. Групи команд мови sql
- •4. Мова sql — типи даних та функції
- •4.1 Типи даних sql
- •4.1.1 Символьні дані
- •4.1.2 Бітовий тип даних
- •4.1.3 Числові типи даних
- •4.1.4 Тип даних «дата/час»
- •4.2 Операції та агрегатні функції.
- •4.2.1. Реляційні операції
- •4.2.2. Булеві операції
- •4.2.3. Агрегатні функції
- •5. Мова sql - вибірка даних
- •5.1 Оператор select
- •5.1.1 Фраза from
- •5.1.2 Фраза where
- •5.1.3 Фраза group by
- •5.1.4 Фраза having
- •5.1.5 Фраза order by
- •5.2 Операція join — об’єднання таблиць
- •5.3 Вкладені підзапити
- •5.4 Операція union
- •5.5 Оператор select…into
- •Маніпулювання даними Оператор insert into
- •Insert into Students ( num, Surname, Name, Age, Speciality ) values (6, 'Куцик', 'Олександр', 18, 'Математика');
- •2 Оператор update
- •Оператор delete
- •Створення та знищення об’єктів бд
- •Створення бази даних
- •4.9.1 Оператор create table
- •4.9.2 Оператор alter table
- •Оператор drop
5.3 Вкладені підзапити
SQL дозволяє використовувати одні запити всередені інших запитів, тобто вкладати один запит у інший. При цьому верхнього рівня оператор SELECT використовує результат внутрішнього оператора SELECT для визначення отримання кінцевого результату всього запиту. Внутрішні оператори можуть бути розміщені у реченнях WHERE і HAVING і в такому разі отримують назву підзапитів, або вкладених запитів. Крім того, внутрішні оператори SELECT можуть використовуватись в операторах INSERT, UPDATE і DELETE.
Існує три типи підзапитів, а саме:
скалярний підзапит який повертає значення вибране із перетину одного стовпця і одного запису чи результату виразу;
рядковий підзапит який повертає значення декількох стовпців таблиці у вигляді одного рядка;
табличний підзапит який повертає значення одного чи більше стовпців таблиці розміщених у більше ніж одному рядку.
При побудові підзапитів потрібно дотримуватись наступних правил і обмежень:
У підзапитах не повинна використовуватись фраза ORDER BY, хоча вона може бути присутня у зовнішньому запиті.
Список у визначенні SELECT підзапиту повинні складатись із імен окремих стовпців або складених із них виразів за виключенням того випадку, коли у підзапиті використовується ключове слово EXIST. Дане слово використовується тільки разом із підзапитом і результатом його дії є логічне значення True чи False. Істина буде в тому випадку коли у результуючій таблиці підзапиту присутній хоча би один рядок.
За замовчуванням імена стовпців у підзапиті відносяться до таблиці, ім’я якої вказано у фразі FROM.
Якщо підзапит є одним із двох операндів, які беруть участь в операції порівняння, то підзапит повинен бути вказаний у правій частині даної операції.
У вкладених підзапитах використовується предикат IN ( Select … From … Where … IN).
У підзапитах, які повертають один стовпець числових значень, можуть використовуватись ключові слова ALL і ANY.
Якщо підзапиту буде передувати ключове ключове слово ALL, то умова порівняння вважається виконаною тільки в тому випадку, якщо воно виконується для всіх значень у результуючому стовпці підзапиту.
Якщо запиту, підзапиту передує ключове слово ANY, то умова порівняння буде вважатись виконаною, якщо вона виконується хоча би для одного із значень у результуючому стовпці підзапиту. Якщо в результаті виконання підзапиту буде отримано порожнє значення, то для слова ALL умова порівняння буде вважатись виконаною, а для ANY ні.
Приклад 12.
Вибрати прізвища студентів, вік яких дорівнює мінімальному.
Запит матиме вигляд:
SELECT Surname, Age FROM Students WHERE Age = ( SELECT MIN(Age) FROM Students );
У даному запиті спочатку вибереться мінімальний вік студентів, а тоді прізвища всіх студентів із мінімальним віком.
Вкладений підзапит працює наступним чином:
вибирається рядок з таблиці, назва якого вказана у зовнішньому запиті;
виконується підзапит і отримане значення застосовується для аналізу цього рядка в умові речення WHERE зовнішнього запиту;
за результатами оцінки умови приймається рішення про включення або не включення рядка у склад вихідних даних;
аналогічно процедура виконується для наступного рядка таблиці зовнішнього запиту.
У мові SQL можна використовувати стандартні операції над множинами, а саме: об’єднання, перетин і різниця, які дозволяють комбінувати результати виконання двох і більше запитів в одну результуючу таблицю.
На таблиці, які можуть комбінуватись з допомогою операцій над множинами накладаються певні обмеження, а саме:
– вони повинні мати одну і ту ж структуру, тобто одну і ту ж кількість стовпців;
– у відповідних стовпцях повинні міститись дані однакового типу і довжини.