
- •Державна податкова адміністрація україни
- •Поняття інформаційної системи
- •Життєвий цикл інформаційної системи
- •Історія розвитку субд
- •Реляційна модель даних
- •Математичні відношення
- •Реляційні ключі
- •Реляційна цілісність
- •Реляційна алгебра
- •Операції з’єднання
- •Нормалізовані відношення
- •Коли субд можна вважати реляційною
- •Основні типи даних визначених стандартом 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)
Insert into ustanova(kod,nazva) values(10234,’Академія дпс України’)
Цей оператор вставляє в таблицю ustanovaновий рядок значення першої колонки стає 10234 (ця колонка має числовий формат), а другої колонки (вона має текстовий формат) – “Академія ДПС України”.
В мові SQL діють арифметичні операції – додавання, віднімання, множення і ділення. Ці операції позначаються:
+ - додавання (сума);
- - віднімання (різниця);
* - множення (добуток);
/ - ділення (частка).
Алгебричні вирази. Люба числова константа є алгебричним виразом. Люба назва стовпчика таблиці є алгебричним виразом. Алгебричні вирази називають сумісними по типу, якщо вони мають однаковий тип (символьний, числовий). Якщо A i B алгебричні вирази числового типу , то A+B, A-B, A*B, A/B - алгебричні вирази числового типу. Наприклад, 100/2, (column_name*0.2)/1.2, column_name1*column_name2+100. Якщо вирази А і B мають строковий тип, то A+B є строковим виразом. Наприклад, ‘Академія’+’ ДПСУ’, column_name3 + ’зараховано’, column_name3+ column_name4. У вище наведених прикладах column_name1, column_name2 означали назви стовпчиків числового типу, а column_name3, column_name4 – назви стовпчиків символьного типу.
В мові SQL використовуються такі оператори зрівнювання:
-
=
рівність
<
менше
>
більше
<=
менше або дорівнює
>=
більше або дорівнює
<>
не рівно
Якщо вирази A i B вирази одного типу, то вирази:
A = B, A < B, A > B, A <= B, A >= B, A <> B
називатимемо предикатами. Предикати приймають 2 значення: ІСТИНА і НЕІСТИНА. Наприклад, column_name1>1000, column_name3=‘Академія’.
Більш складні предикати будуються з допомогою булевих операцій AND, OR або NOT.
Якщо P1, P2 – предикати, то
P1 AND P2 , P1 OR P2 , NOT P1
також предикати.
Нижче в таблиці наведені результати застосування булевих операцій.
P1 |
P2 |
P1 AND P2 |
P1 OR P2 |
NOT P1 |
Істина |
Істина |
Істина |
Істина |
Неістина |
Істина |
Неістина |
Неістина |
Істина |
|
Неістина |
Істина |
Неістина |
Істина |
Істина |
Неістина |
Неістина |
Неістина |
Неістина |
|
Закони Де Моргана:
1-й закон.Предикат NOT(P1 OR P2) еквівалентний предикатові NOT P1AND NOT P2, тобто на однакових наборах значень P1, P2приймають однакові значення. Ця еквівалентність записується так:
NOT(P1 OR P2)NOT P1AND NOT P2
2-й закон:
NOT(P1 AND P2)NOT P1OR NOT P2
Дистрибутивний закон:
Q AND (P1OR P2)(Q AND P1) OR (Q AND P2)
Продемонструємо використання цих законів. Нехай в колонці з назвою Sдеякої таблиці зберігається інформація про нараховані суми. Предикат, що визначає рядки в яких нарахована сума НЕ лежить в межах від 100 до 1000 грн. матиме вид:
NOT(S>=100 ANDS<=1000)
Згідно 2-му закону Де Моргана, він еквівалентний:
NOT (S>=100) OR NOT(S<=1000)
В свою чергу
NOT (S>=100)S<100
NOT( S<=1000) )S>1000
Отже
NOT(S>=100 ANDS<=1000) )S<100 ORS>1000
В мові SQL передбачено також використання скалярних функцій над символьними даними, даними типу DATE, TIMESTAMP а також функцій, що перетворюють один тип даних в інший. Деякі розробники СУБД відійшли від стандарту SQL-92, тому ми подаємо таблицю, в якій вказані функції стандарту SQL-92 і відповідні їм функції СУБД Access.
Функція |
Призначення | |
стандарт SQL-92 |
СУБД Access | |
CHAR_LENGTH |
Len |
повертає довжину в байтах заданого аргументу |
LOWER |
відсутня |
повертає символьну строку у нижньому регістрі(малі букви) |
UPPER |
відсутня |
повертає символьну строку у верхньому регістрі (великі букви) |
TRIM |
TRIM |
SQL-92:Видаляє зі строки початкові (LEADING), кінцеві (TRAILING), або ті і інші (BOTH) вказані символи із заданої строки. Приклад: TRIM(BOTH 'A' From 'Академія') поверне 'кадемія' СУБД Access: Видаляє зі строки початкові і прикінцеві пробіли. Приклад: TRIM(' Академія ') поверне 'Академія' |
відсутня |
LTRIM |
Видаляє зі строки початкові пробіли. |
відсутня |
RTRIM |
Видаляє зі строки прикінцеві пробіли. |
SUBSTR |
відсутня |
Функція виділяє підслово в слові. SUBSTR (PRIZ FROM 2 TO 4) повертатиме послідовність з 4 символів з колонки PRIZ, починаючи з 2-го символу, тобто, якщо колонка містить значення 'Іванов', функція поверне 'вано' |
Left |
Left |
Left(PRIZ,4) поверне перших 4 символи значення колонки PRIZ, тобто, якщо колонка містить значення 'Іванов', функція поверне - 'Іван' |
Right |
Right |
Right(PRIZ,4) поверне останні 4 символи значення колонки PRIZ, тобто, якщо колонка містить значення 'Іванов', функція поверне- 'анов' |
EXTRACT |
Year, Month, Day |
Функції застосовуються лише до даних типу DATE, TIMESTAMP і повертають рік, номер місяця (1 – 12) або день (1 – 31).Приклад. Якщо в колонці DREG зберігається дата реєстрації підприємства, то EXTRACT(YEAR FROM DREG) поверне значення року СУБД Access: Year(DREG) поверне значення року Month(DREG) поверне номер місяця, а Day(DREG) – номер дня (1 – 31). |