Вивчення основних можливостей операторів мови визначення даних SQL. Мета: засвоєння основних операторів мови визначення даних SQL, побудова запитів.
Короткі теоретичні відомості
Структурована мова запитів SQL
Мова SQL — це мова програмування, яка використовується під час аналізу, поновлення та обробки реляційних баз даних. СУБД ACCESS використовує мову Місrosoft JET SQL.
Для створення запиту мовою SQL треба вибрати вкладинкуЗапросы, натиснути на кнопку Создать, вибрати Конструктор, у вікні Добавление таблицынатиснути на кнопку Закрыть, у меню Вид вибрати Режим SQL та увести інструкцію SQL. Інструкції SQL можна використовувати у таких випадках:
· перегляд та змінення запитів, створених у режимі конструктора;
· визначення властивостей форм та звітів;
· створення спеціальних запитів таких, як запити-з’єднання, запити до серверу та управляючі запити. Ці види запитів не можна створити в режимі конструктора;
· створення підпорядкованих запитів.
Мова SQL складається з інструкцій, речень, операцій та агрегатних функцій, які поєднуються в інструкції для створення, модифікації та маніпулювання базою даних. Речення SQLзмінюють умови відбирання записів. Існують такі основні речення:
· FROM — призначено для визначення імені таблиці, з якої відбираються записи;
· WHERE — задає умови відбирання записів;
· GROUP BY — використовується для розподілу вибраних записів по групах;
· HAVING — визначає умову, яку повинна задовольняти кожна група записів;
· ORDER BY — використовується для визначення порядку сортування вибраних записів;
· CONSTRAINT — використовується в інструкції CREATE TABLE для визначення індексу для існуючої таблиці.
Операції SQLподіляються на логічні та порівняння. Логічні операції: AND, OR, NOT. Операції порівняння: <, <=, >, >=, =, <> (не дорівнює), BETWEEN (задання інтервалу значень), LIKE (задання шаблону значень, які збіглися), IN (визначення записів у базі даних).
Агрегатні (статистичні) функціївикористовуються для груп записів, повертаючи єдине значення для всієї групи. Існують такі основні анрегатні функції:
підсумовування даних — SUM(<вираз>);
обчислення середнього — AVG(<вираз>);
визначення мінімального значення — MIN(<вираз>);
визначення максимального значення — MAX(<вираз>);
визначення кількості записів COUNT(<вираз>);
· Інструкції SQLподіляються на такі категорії:
інструкції Мови Визначення Даних (DDL);
інструкції Мови Маніпулювання Даними (DML).
Інструкції DDLвикористовуються для створення, зміни, вилучення об’єктів бази даних, зміни імен схеми бази даних, вилучення даних.
Створення таблиць. Для створення таблиць використовується інструкція CREATE TABLE. Наприклад, інструкція створення таблиці ПРАЦІВНИКИбуде мати такий вигляд: CREATE TABLE ПРАЦІВНИКИ ([ТАБЕЛЬНИЙ НОМЕР] DOUBLE, [ПРІЗВИЩЕ] TEXT (20), [ПОСАДА] TEXT (15), [ОКЛАД] FLOAT);
Додавання та вилучення полів. За допомогою команди ALTER TABLE можна додавати, вилучати та змінювати поля. Для додавання поля використовується параметр ADD COLUMN, для вилучення стовпчика — DROP COLUMN.
Наприклад, для додавання у таблицю ПРАЦІВНИКИ поля ДОМАШНЯ АДРЕСА типа TEXT довжиною 30 символів потрібно записати інструкцію такого вигляду: ALTER TABLE ПРАЦІВНИКИ ADD COLUMN [ДОМАШНЯ АДРЕСА] TEXT (30);
Для змінення поля спочатку необхідно його вилучити, а потім — додати. Наприклад, необхідно збільшити розмір поля ПОСАДА до 25 символів: ALTER TABLE ПРАЦІВНИКИ DROP COLUMN [ПОСАДА];
ALTER TABLE ПРАЦІВНИКИ ADD COLUMN [ПОСАДА] TEXT (25); Створення та вилучення індексів.Індекс можна створити за допомогою інструкцій CREATE TABLE, CREATE INDEX та ALTER TABLE. Під час створення індексу необхідно задавати його тип, який може приймати такі значення:
· UNIQUE — визначає поле або декілька полів (складений індекс) як унікальний ключ;
· PRIMARY KEY — визначає поле або набір полів як первинний ключ;
· FOREIGN KEY — визначає поле або декілька полів як зовнішній ключ.
Наприклад, для таблиці ТАБЕЛЬ необхідно створити первинний індекс за полями МІСЯЦЬ та ТАБЕЛЬНИЙ НОМЕР різними методами:
· під час створення таблиці: CREATE TABLE ТАБЕЛЬ ([МІСЯЦЬ] INTEGER ,[ТАБЕЛЬНИЙ НОМЕР] DOUBLE, [КІЛЬКІСТЬ ВІДПРАЦЬОВАНИХ ДНІВ] DOUBLE, CONSTRAINT ІНДЕКС_МІС_ТАБ PRIMARY KEY ([МІСЯЦЬ], [ТАБЕЛЬНИЙ НОМЕР]));
· створення індексу для існуючої таблиці за допомогою інструкції CREATE INDEX: CREATE PRIMARY KEY INDEX ІНДЕКС_МІС_ТАБ ON ТАБЕЛЬ ([МІСЯЦЬ], [ТАБЕЛЬНИЙ НОМЕР]); (Потрібно пам’ятати, що таблиця може мати тільки один індекс типу PRIMARY KEY);
· додавання індексу до існуючої таблиці за допомогою інструкції ALTER TABLE: ALTER TABLE ТАБЕЛЬ ADD CONSTRAINT ІНДЕКС_МІС_TАБ PRIMARY KEY ([МІСЯЦЬ], [ТАБЕЛЬНИЙ НОМЕР]);
Інструкції DMLвикористовуються для вибирання, додавання, вилучення та модифікації записів у таблицях.
Вибирання записів.Інструкція SELECT вибирає записи з бази даних у тимчасовий об’єктRECORDSET. Ці записи надалі можна виводити на екран, вилучати, змінювати та використовувати у звітах. Формат інструкції SELECT:
SELECT [предикат] <список полів або виразів>
FROM <таблиці>[ IN <зовнішня база даних>]
[WHERE <умова вибирання записів>]
[GROUP BY <список полів>]
[HAVING <критерій>]
[ORDER BY <список полів>]
[WITH OWNERACCESS OPTION ];
Предикат використовується для обмеження кількості записів, що вибираються, і може приймати такі значення: ALL (всі записи), DISTINCT (записи, значення в яких повторюються, вибираються один раз) або TOP (вибирає задану кількість перших записів). За замовчанням використовується значення ALL. Замість списку полів може задаватися символ «*», що означає вибрати всі поля із заданої таблиці. Полю або виразу можна надати нову назву таким чином: <ім’я поля(вираз)> AS <назва> (наприклад, АДРЕСА AS ДОМАШНЯ АДРЕСА; КІЛЬКІСТЬ* ЦІНА AS ВАРТІСТЬ).
Речення FROM використовується для задання таблиць, з яких вибираються записи. Якщо треба вибрати поля з кількох таблиць, перед їх іменами потрібно задавати ім’я таблиці з символом «.» (наприклад, ТАБЕЛЬ.ТАБЕЛЬНИЙ НОМЕР).
Речення WHERE визначає умову відбирання записів з бази даних. Якщо WHERE відсутнє, вибираються всі записи заданих таблиць. Наприклад, для того, щоб вибрати записи за місяці 1-ий, 2-ий, 3-ий можна записати: WHERE МІСЯЦЬ BETWEEN 1 AND 3.