- •Державна податкова адміністрація україни
- •Поняття інформаційної системи
- •Життєвий цикл інформаційної системи
- •Історія розвитку субд
- •Реляційна модель даних
- •Математичні відношення
- •Реляційні ключі
- •Реляційна цілісність
- •Реляційна алгебра
- •Операції з’єднання
- •Нормалізовані відношення
- •Коли субд можна вважати реляційною
- •Основні типи даних визначених стандартом 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)
Основи мови sql
SQL - це абревіатура від Structured Query Language, що в перекладі з англійської означає мова структурованих запитів. Мова SQL орієнтована на реляційні бази даних, про які велась мова в попередніх лекціях. В ідеалі, люба мова для роботи з базами повинна надавати користувачеві такі можливості:
створювати бази даних і таблиці з повним описом їх структури;
виконувати основні операції маніпулювання даними (вставка, поновлення, видалення даних з таблиць);
виконувати прості і складні запити, що здійснюють перетворення необроблених даних в необхідну інформацію.
Крім того, мова роботи з базами даних повинна вирішувати всі вищезгадані при мінімальних зусиллях зі сторони користувача, а структура і синтаксис її команд повинна бути простою і доступною для вивчення. Також мова повинна бути універсальною, тобто повинна відповідати загальновизнаному стандарту, що дозволить використовувати один і той же синтаксис і структуру команд при переході від однієї СУБД до іншої. Мова SQL задовольняє практично всім цим вимогам. Мова SQL має два основні компоненти:
мова DDL (Data Definition Language), засобами якої визначаються структури бази;
мова DML (Data Manipulation Language), засобами якої здійснюється виборка і поновлення даних.
Мова SQL може використовуватись двома способами. Перший передбачає інтерактивний режим роботи, який полягає в тому, що користувач з терміналу вводить окремі SQL-оператори. Другий метод полягає в тому, що SQL-оператори вбудовуються певним чином у процедурні мови програмування (C, C++ ). В основному ці 2 форми SQL працюють однаково. На практичних роботах ми будемо користуватись інтерактивною формою.
На сьогоднішній день для мови SQL існує міжнародний стандарт (ISO 1992р), який робить цю мову стандартною мовою визначення і маніпулювання реляційними базами даних.
Термінологія SQL. Стандарт ISO SQL не підтримує таких формальних термінів як “відношення”, “атрибут” і “кортеж”, замість них вживаються терміни “таблиця”, “стовпчик” і “рядок”. Ми будемо притримуватися термінології ISO.
Запис SQL-операторів. Мова SQL містить зарезервовані слова, а також слова, які визначаються користувачем. Зарезервовані слова є постійною частиною самої мови SQL і мають фіксоване значення. Їх потрібно записувати так як це визначено мовою, їх не можна розбивати на частини для переносу з одного рядка в інший. Слова, що визначаються користувачем, задаються самим користувачем ( у відповідності з визначеними синтаксичними правилами) і є іменами різних об’єктів бази – таблиць, стовпчиків, представлень, індексів, тощо.
Слова в операторі розташовуються у порядку визначеному синтаксичними правилами мови. Більшість компонентів SQL-оператора не чутливі до регістру. Це означає, що можна використовувати як малі так і великі букви. Наприклад, зарезервоване слово Select можна записати і так: SELECT – обидва записи еквівалентні. В подальшому ми будемо притримуватись таких правил:
Великі букви використовуватимемо для написання зарезервованих слів мови SQL.
Малі букви латинського алфавіту будемо використовуватимемо для написання слів, які визначаються користувачем.
Вертикальна риска ( | ) вказує на необхідність вибору одного з декількох наведених значень – наприклад, a | b | c.
Фігурні дужки визначають обов’язковий елемент – наприклад, { a }.
Квадратні дужки визначають необов’язковий елемент – наприклад, [a].
Трикрапка ( … ) використовується для необов’язкового повтору певної конструкції від 0 до декількох раз – наприклад, {a|b}[,c…]. Цей запис означає, що після a або b записується від нуля до декількох повторів с, відокремлених комами.
На практиці для визначення таблиць використовуються DDL-оператори, а для заповнення цих таблиць даними і виборки з них використовуються DML-оператори. Спочатку ми розглянемо DML-оператори, а потім DDL-оператори.
До DML-операторів мови SQL відносяться такі оператори:
SELECT – виборка даних з бази;
INSERT – вставка даних у таблицю;
UPDATE – поновлення (заміна) даних в таблиці;
DELETE – видалення даних з таблиці.
Числові константи SQL. Любе число є константою, наприклад, 200,3,0.9.
Символьні або текстові константи. Люба послідовність букв і цифр є символьною константою. Символьні константи поміщаються в одинарні кавички, наприклад, ‘Школа’,’5-та школа’,’200’. Зауважимо, що константи 200 і ‘200’ є різними в SQL. Константи типу TIMESTAMP записуються у виді:
{ts 'YYYY-mm-dd hh:MM:SS'}
де YYYY означає рік, mm – номер місяця(1 – 12), dd – календарний день(1 – 31)
Константи типу DATE записуються у виді:
{d 'YYYY-mm-dd'}
Отже, константа {ts '2003-9-11 8:30:00'} позначає 11 вересня 2003 року 8 годин 30 хвилин.
В мові SQL константи як числові так і нечислові називають одним словом – літерал.
Приклад використання літералів в операторі INSERT: