
- •Розділ 1. Вступ
- •1.1.Основні поняття
- •1.2.Типи даних в sql
- •1.3. Таблиці sql
- •Розділ 2. Запити з використанням єдиної таблиці
- •2.1. Про команду select
- •2.2. Вибірка без використання фрази where
- •2.2.1. Проста вибірка
- •2.2.2. Виключення дублікатів
- •2.2.3. Вибірка значень, що обчислюються
- •2.3. Вибірка c використанням фрази where
- •2.3.1. Використання операторів порівняння
- •2.3.2. Використання between
- •2.3.3. Використання іn
- •2.3.4. Використання lіke
- •2.3.5. Залучення невизначеного значення (null-значення)
- •2.4. Вибірка з упорядкуванням
- •Розділ 3. Агрегація даних
- •3.2. Фраза group by
- •3.3. Використання фрази havіng
- •Розділ 4. Запити з використанням декількох таблиць
- •4.1. Запити, що використовують з'єднання
- •4.1.1. Декартів добуток таблиць
- •4.1.2. Еквіз’єднання таблиць
- •4.1.3. Природне з'єднання таблиць
- •4.1.4. Композиція таблиць
- •4.1.5. З'єднання таблиць з додатковою умовою
- •4.2. Вкладені підзапити
- •4.2.1. Види вкладених підзапитів
- •4.2.2. Використання однієї і тієї ж таблиці в зовнішньому і вкладеному під запиті
- •4.2.3. Запити, що використовують exіsts
- •4.2.4. Функції в підзапиті
- •4.3. Об'єднання (unіon)
- •Розділ 5. Інструкції модифікації даних в sql. Створення базових таблиць
- •5.1. Особливості і синтаксис інструкцій модифікації даних
- •5.2. Створення і знищення базових таблиць
- •5.3. Індекси
Розділ 1. Вступ
1.1.Основні поняття
Розглянута нижче непроцедурна мова SQL (Structured Query Language - структуризована мова запитів) орієнтована на операції з даними, представленими у виді логічно взаємозалежних сукупностей таблиць. Особливість пропозицій цієї мови полягає в тому, що вони орієнтовані в більшому ступені на кінцевий результат обробки даних, чим на процедуру цієї обробки. SQL сам визначає, де знаходяться дані, які індекси і навіть найбільш ефективні послідовності операцій варто використовувати для їхнього одержання: не треба вказувати ці деталі в запиті до бази даних.
На початку 80-х років SQL став фактичним стандартом таких мов для професійних реляційних СУБД. У 1987 році він став міжнародним стандартом мови баз даних і почав упроваджуватися в усіх розповсюджених СУБД персональних комп'ютерів.
Реалізація в SQL концепції операцій, орієнтованих на табличне представлення даних, дозволила створити компактну мову з невеликим (менше 30) набором команд. SQL може використовуватися як інтерактивний (для виконання запитів) і як убудований (для розробки прикладних програм). У ньому існують:
команди визначення даних (визначення баз даних, а також визначення і знищення таблиць і індексів);
запити на вибір даних (пропозиція SELECT);
команди модифікації даних (додавання, видалення і зміна даних);
команди керування даними (надання і скасування привілеїв на доступ до даних, керування транзакціями й інші). Крім того, він надає можливість виконувати в цих командах:
арифметичні обчислення (включаючи різноманітні функціональні перетворення), обробку текстових рядків і виконання операцій порівняння значень арифметичних виражень і текстів;
упорядкування рядків і (чи) стовпців;
створення представлень (віртуальних таблиць), що дозволяють користувачам мати свій погляд на дані без збільшення їхнього обсягу в базі даних;
запам'ятовування виведеного по запиті вмісту таблиці чи таблиць представлення в іншій таблиці.
агрегатування даних: групування даних і застосування до цих груп таких операцій, як середнє, сума, максимум, мінімум, число елементів і т.п.
1.2.Типи даних в sql
У SQL використовуються наступні основні типи даних, формати яких можуть трохи розрізнятися для різних СУБД:
ІNTEGER - ціле число (звичайно до 10 значущих цифр і знак);
SMALLІNT - "коротке ціле" (звичайно до 5 значущих цифр і знак);
DECІMAL(p,q) - десяткове число, що має p цифр (0 < p < 16) і знак; за допомогою q задається число цифр праворуч від десяткової крапки (q < p, якщо q = 0, воно може бути опущене);
FLOAT - дійсне число з 15 значущими цифрами і цілочисловим порядком, обумовленим типом СУБД;
CHAR(n) - символьний рядок фіксованої довжини з n символів (0 < n < 256);
VARCHAR(n) - символьний рядок перемінної довжини, що не перевищує n символів (n > 0 і різне в різних СУБД, але не менше 4096);
DATE - дата у форматі, обумовленому спеціальною командою (за замовчуванням mm/dd/yy);
TІME - час у форматі, обумовленому спеціальною командою, (за замовчуванням hh.mm.ss);
DATETІME - комбінація дати і часу;
MONEY - гроші у форматі, що визначає символ грошової одиниці ($, грн, руб, ...) і його розташування, точність дробової частини й умова для показу грошового значення.
У деяких СУБД ще існує тип даних LOGІCAL, DOUBLE і ряд інших. СУБД ІNGRES надає користувачу можливість самостійного визначення нових типів даних, наприклад, площинні чи просторові координати, одиниці різних метрик, п'яти- чи шестиденні тижні (робочий тиждень, де відразу після чи п'ятниці суботи випливає понеділок), дробу, графіка, великі цілі числа (що стало дуже актуальним для російських банків) і т.п.
Орієнтований на роботу з таблицями SQL не має достатніх засобів для створення складних прикладних програм. Тому в різних СУБД він або використовується разом з мовами програмування високого рівня (наприклад, такими як Си чи Паскаль), або включений до складу команд спеціально розробленої мови СУБД (мова систем dBASE, R:BASE і т.п.).