- •Державна податкова адміністрація україни
- •Поняття інформаційної системи
- •Життєвий цикл інформаційної системи
- •Історія розвитку субд
- •Реляційна модель даних
- •Математичні відношення
- •Реляційні ключі
- •Реляційна цілісність
- •Реляційна алгебра
- •Операції з’єднання
- •Нормалізовані відношення
- •Коли субд можна вважати реляційною
- •Основні типи даних визначених стандартом iso
- •Integer
- •Формати представлення дат
- •Формат time
- •Коротка характеристика сучасних субд
- •Основи мови sql
- •Insert into ustanova(kod,nazva) values(10234,’Академія дпс України’)
- •Прості запити
- •Умова відбору (ключове слово where)
- •Зрівняння
- •Використання діапазонів (between / not between)
- •Умови відбору з перевіркою входження у множину (in / not in)
- •Умови відбору з допомогою шаблону (like / not like)
- •Використання значення null в умовах відбору (is null / not null)
- •Використання множини таблиць в одному запиті
- •Імена таблиць і стовпчиків
- •З’єднання таблиць (join)
- •Ліве з’єднання (left join)
- •Сортування результату (фраза order by)
- •Групування результатів (фраза group by). Агрегатні функції
- •Використання фрази group by
- •Використання фрази having
- •Підзапити
- •Ключові слова any I all
- •Ключові слова exists I not exists
- •Комбінування результуючих таблиць (операції union, intersect і except)
- •Поновлення бази даних
- •Вставка нових даних
- •Модифікація даних (оператор update)
- •Використання inner join, left join в операторі update
- •Видалення даних з бази(оператор delete)
- •Визначення даних
- •Створення баз даних
- •Створення таблиць (оператор create table)
- •Видалення таблиць (оператор drop table)
- •Створення індексу (оператор create index)
- •Видалення індексу (оператор drop index)
- •Модифікація структури таблиці (оператор alter table)
- •Використання транзакцій
- •Управління доступом даних
- •Надання привілеїв іншим користувачам (оператор grant)
- •Відміна наданих привілеїв (оператор revoke)
Умова відбору (ключове слово where)
В наведених вище прикладах в результаті виконання оператора SELECT вибирались всі рядки вказаної таблиці. Якщо потрібно задати критерій відбору рядків це задається після ключового слова WHERE. Існує 5 основних типів умов відбору (або, згідно термінології ISO, предикатів).
Зрівняння.Зрівнюються результати обчислення одного виразу з результатами обчислення другого виразу.
Діапазон. Перевіряється, чи попадає результат обрахунку виразу в заданий діапазон.
Приналежність до множини. Перевіряється, чи належить результат обчислення виразу до заданої множини значень.
Відповідність шаблону.Перевіряється, чи відповідає деяке строкове значення заданому шаблону.
Значення NULL.Перевіряється, чи даний стовпчик має невизначене значення NULL.
Розглянемо приклади застосування вказаних типів відбору.
Зрівняння
Необхідно скласти перелік товарів, ціна покупки яких перевищила 90.
SELECT kod,suma,data
FROM table_a
WHERE suma>90
Результат запиту матиме вид:
kod |
suma |
data |
1 |
100 |
1.1.2002 |
2 |
150 |
2.1.2002 |
(2 рядки)
Одержати перелік товарів з відповідними сумами і відповідними сумами податку ПДВ, в яких сума податку ПДВ перевищує 10. Відповідний оператор SELECT матиме вид:
SELECT kod,suma,(suma*0.2)/(1+0.2) AS pdv
FROM table_a
WHERE suma*0.2/1.2 >10
Результат запиту матиме вид:
kod |
suma |
Pdv |
1 |
100 |
16.666666 |
2 |
150 |
25 |
2 |
89 |
27.666666 |
Необхідно скласти перелік покупок товару з кодом 1, ціна покупки яких не перевищувала 80.
SELECT kod,suma,data
FROM table_a
WHERE kod=1 AND suma<=80
Результат запиту матиме вид:
kod |
suma |
data |
1 |
55 |
10.1.2002 |
1 |
40 |
15.1.2002 |
Якщо потрібно одержати перелік товарів, які були закуплені після 10 січня 2002 року, потрібно задати такий оператор:
SELECT *
FROM table_a
WHERE data> {d'2002-1-10'}
Результат запиту матиме вид:
kod |
suma |
data |
1 |
40 |
15.1.2002 |
2 |
89 |
2.2.2002 |
3 |
28 |
10.2.2002 |
Використання діапазонів (between / not between)
Необхідно скласти перелік товарів, ціна покупки яких лежить в межах від 50 до 100 грн.
SELECT kod,suma,data
FROM table_a
WHERE suma BETWEEN 50 AND 100
Результат запиту матиме вид:
kod |
suma |
data |
1 |
100 |
1.1.2002 |
1 |
55 |
10.1.2002 |
2 |
89 |
2.2.2002 |
Умови відбору з перевіркою входження у множину (in / not in)
Задача. Необхідно скласти список покупок, які здійснювались 1.1.2002 і 2.2.2002 року. Запит матиме такий вид:
SELECT *
FROM table_a
WHERE data IN( {d'2002-01-01'},{d'2002-02-02'})
Результат запиту матиме вид:
kod |
suma |
data |
1 |
100 |
1.1.2002 |
2 |
89 |
2.2.2002 |
Умови відбору з допомогою шаблону (like / not like)
В мові SQL існує два спеціальних символи шаблону, які використовуються для зрівнювання символьних значень.
% Символ проценту представляє любу послідовність з нуля і більше символів.
_ Символ підкреслювання представляє любий одиночний символ.
Всі останні символи в шаблоні представляють самі себе. Наприклад:
Adresa LIKE ‘П%’ – цей шаблон означає, що перший символ значення стовпчика Adresa повинен бути символом П, а всі останні символи можуть бути любими;
Adresa LIKE ‘П___’ - цей шаблон означає, що значення стовпчика Adresa повинно мати довжину 4 і починатись з символу П;
Adresa LIKE ‘%п’ – цей шаблон означає, значення стовпчика Adresa повинно закінчуватись символом п;
Adresa LIKE ‘%ДПС%’ – цей шаблон означає, що значення стовпчика Adresa повинно містити підслово ДПС;
Adresa NOT LIKE ‘П%’ – цей шаблон означає, що перший символ значення стовпчика Adresa НЕ повинен бути символом П, а всі останні символи можуть бути любими.
Приклад. Нехай таблицяustanovaмає такі стовпчики: kod, Nazva, Adresa, в яких заноситься інформація про ідентифікаційний код підприємства, його назву і адресу відповідно. Тоді запит
SELECT *
FROM ustanova
WHERE Adresa LIKE’%Ірпінь%’
поверне перелік підприємств, в адресі яких зустрічається слово Ірпінь.
Якщо ж потрібно одержати перелік підприємств, назви яких не містять ні букви "а" ні букви "б", запит матиме вид:
SELECT *
FROM ustanova
WHERE NOT Nazva LIKE’%a%’ AND NOT Nazva LIKE’%б%’