
- •Лекції Мова запитів sql
- •1.Загальна характеристика
- •2.Особливості та переваги мови sql
- •3.Групи команд мови sql
- •4.Стандарт мови sql Типи даних sql
- •Операції та агрегатні функції.
- •Вибірка даних Оператор select
- •Речення from
- •Речення where
- •Речення group by
- •Речення having
- •Речення order by
- •Операція join
- •Вкладені підзапити
- •Операція union
- •Оператор select…into
- •Маніпулювання даними Оператор insert into
- •Оператор update
- •Оператор delete
- •Створення та знищення об’єктів бд
- •Створення бази даних
- •Оператор create table
- •Оператор alter table
- •Оператор drop
Операції та агрегатні функції.
При створенні запитів на мові SQL використовуються реляційні та булеві оператори, спеціальні оператори в умовах, а також агрегатні функції.
Реляційні операції – це математичні символи, які вказують на певний тип порівняння двох значень. SQL використовує наступні операції:
= |
рівне; |
> |
більше ніж; |
< |
менше ніж; |
>= |
більше або рівне; |
<= |
менше або рівне; |
<> |
не дорівнює. |
Ці операції мають стандартні значення для числових значень. Для символьних значень їх визначення залежить від формату перетворення ASCII або EBCDIC.
Основні булеві операції (NOT, AND, OR) також розпізнаються. Булеві вирази набувають значення істина або хибність.
Також SQL використовує спеціальні операції:
IN – визначає набір значень, в який дане значення може бути включене або ні (A IN (1, 2, 3, 4, 5); B IN (‘X’, ‘Y’, ‘Z’));
BETWEEN – визначає діапазон значень, куди дане значення може входити (A BETWEEN .1 AND .5; B BETWEEN ‘X’ AND ‘Z’));
LIKE – використовується тільки для даних символьних типів, де у значеннях шукає входження рядка; при використанні символ (_) заміщує будь-який символ, а (%) заміщує послідовність будь-яких символів (Text LIKE S_ – набуде істини, якщо значення поля Text починається з літери S, а другий символ є будь-яким одиночним; Text LIKE S% – набуде істини, якщо значення поля Text починається з літери S);
IS NULL – вказує на невизначене значення.
Агрегатні функції видають одиночне значення для всієї групи таблиць:
COUNT – видає кількість вибраних значень;
SUM – видає арифметичну суму вибраних значень;
AVG – видає середнє значення вибраних значень;
MAX – видає найбільше значення серед вибраних значень;
MIN – видає найменше значення серед вибраних значень.
Вибірка даних Оператор select
Оператор SELECT – дозволяє проводити вибірки даних з таблиць і перетворювати до потрібного вигляду отримані результати.. Синтаксис:
SELECT [ALL | DISTINCT | DISTINCTROW | TOP]{* | <ім’я таблиці>.* | [<ім’я таблиці>.]<назва поля> [AS <псевдонім>] [, …]} FROM <ім’я таблиці> [, …] [IN <ЗБД>] [WHERE …] [GROUP BY …] [HAVING …] [ORDER BY …];
ALL | DISTINCT | DISTINCTROW | TOP – предикати, які використовуються для обмеження числа записів, що повертаються. По замовчуванню використовується ALL (повертає усі значення), якщо предикати відсутні. DISTINCT – виключає записи, що містять значення, які повторюються у вибраних полях. DISTINCTROW – ігнорує дані, які ґрунтуються на записах, що цілком повторюються, а не окремих полів. Впливає на результат тоді, коли до запиту включені не всі поля з таблиці, що аналізуються. TOP n [PERCENT] – повертає певне число записів, що знаходяться на початку або в кінці діапазону описаного за допомогою ORDER BY. «*» – вибрані всі поля заданої таблиці або таблиць. <ім’я таблиці> – назва таблиці, з якої потрібно вибрати записи. <назва поля> – назва поля, з якого вибирають дані; якщо ж задано декілька полів, то дані вибираються у визначеному порядку. AS – задає назву заголовка стовпця у запиті. <псевдонім> – назва, що буде заголовком стовпця замість початкового. IN – оператор входження. <ЗБД> – ім’я БД, що містить таблиці, які вказані за допомогою FROM, якщо вони не знаходяться у поточній БД. Даний оператор SELECT не змінює дані у БД, де відбувається вибір. Кожен запит завершується символом крапка з комою.
Приклади. Розглянемо таблицю Students (табл. 1), яка складається з п’яти полів і п’яти записів: Num містить порядкові номери студентів; Surname - прізвища студентів; Name - імена студентів; Age - вік студентів; Speciality – спеціальність, на якій судент навчається.
Таблиця 1
Num |
Surname |
Name |
Age |
Speciality |
1 |
Крупик |
Віктор |
19 |
Інформатика |
2 |
Прапій |
Степан |
19 |
Інформатика |
3 |
Працків |
Оксана |
18 |
Інформатика |
4 |
Селань |
Віктор |
20 |
Математика |
5 |
Ятрів |
Олег |
17 |
Інформатика |
Дана таблиця буде використовуватись при розгляді решти прикладів.
Приклад 1.
SELECT * FROM Students;
Дана команда виводить усі значення (табл. 2.2) таблиці Students (табл. 2.1).
Таблиця 2
Num |
Surname |
Name |
Age |
Speciality |
1 |
Крупик |
Віктор |
19 |
Інформатика |
2 |
Прапій |
Степан |
19 |
Інформатика |
3 |
Працків |
Оксана |
18 |
Інформатика |
4 |
Селань |
Віктор |
20 |
Математика |
5 |
Ятрів |
Олег |
17 |
Інформатика |
Приклад 2.
SELECT Num, Surname, Name, Age, Speciality FROM Students;
Дана команда також виводить усі значення (табл. 3) таблиці Students (табл.1).
Таблиця 3
Num |
Surname |
Name |
Age |
Speciality |
1 |
Крупик |
Віктор |
19 |
Інформатика |
2 |
Прапій |
Степан |
19 |
Інформатика |
3 |
Працків |
Оксана |
18 |
Інформатика |
4 |
Селань |
Віктор |
20 |
Математика |
5 |
Ятрів |
Олег |
17 |
Інформатика |
Приклад 3.
SELECT Age AS s_age FROM Students;
Дана команда виведе тільки значення поля Age (вік студентів), з назвою заголовка стовпця s_age (табл. 4.).
Для отримання переліку даних без повторень, використовують оператор DISTINCT.
SELECT DISTINCT Age FROM Students;
Результатом (табл. 5) будуть унікальні дані. Розм. у 2-а стовпці
Таблиця 4
S_age |
19 |
19 |
18 |
20 |
17 |
Таблиця 5
Age |
17 |
18 |
19 |
20 |