SQL(Structured Query Language – структурована мова запитів) – це стандартна мова програмування, яка має свої корені у 70-х роках минулого століття, коли фірма IBM створювала програмне забезпечення для роботи з реляційними базами даних. Сьогодні існує міжнародний стандарт мови SQL, якого дотримуються розробники програмного забезпечення з оборобки реляційних баз даних. У MS Access вбудовано діалект мови SQL, який використовується в таких діях, як побудова запитів на вибірку, підсумовуючих запитів, перехрестних запитів, запитів на побудову таблиць, запитів на оновлення, додавання або вилучення записів таблиці.
Мову SQL MS Access використовує при роботі з базою даних, в тому числі неявно, коли користувач діє в рамках звичайного запиту – кожний запит, незалежно від того, як він створювався, зберігається у вигляді інструкції SQL. Необхідність використання мови SQL виникає в різних випадках. Наприклад, коли є необхідність побудувати так званий підлеглий запит, результати якого використовуються як умови для інших запитів. Синтаксис діалекту MS SQL необхідно знати, щоб користуючись цією мовою виконувати ті чи інші SQL–запити. Спочатку цікаво познайомитись, як в термінах SQL зберігається будь-який запит. Для цього необхідно лише скористатись дією меню MS Access Вид - Режим SQL, коли стає активним той чи інший запит.
Ядром мови SQL є інструкція SELECT, яка використовується для відбору полів і записів таблиць бази даних. Синтаксис інструкції SELECT використовує п¢ять основних речень, які можна подати в наступному вигляді:
SELECT <список полів>
FROM <список таблиць>
[WHERE <специфікація вибору записів>]
[GROUP BY <специфікація групування>]
[HAVING <специфікація вибору груп>]
[ORDER BY <специфікація сортування>]
Тут речення FROM визначає таблиці або запити, які є джерелом даних для запиту, що створюється. Речення WHERE та HAVING визначають умови відбору записів і груп записів відповідно. Речення GROUP BY визначає поле (поля) для подальшого формування запиту відносно груп даних з однаковими значеннями цого поля (полів). Речення ORDER BY визначає сортування записів. Крім цих речень в кожному діалекті мови SQL можуть зустрітись інші речення стандарту SQL. У MS Access реалізовані чотири з них:
TRANSFORM – для побудови перехресного запиту;
IN – для зв¢язку з віддаленою базою даних;
DISTINCTROW – для відбору унікальних записів;
WITH OWNERACCESS OPTION – для побудови запиту користувачами, що не мають прав доступу до відповідних таблиць цого запиту.
Приклад запиту з пов¢язаних між собою таблиць Особи, Освіта щодо освіти жінок з сортуванням за прізвищем записів, які містять поля Прізвище, Освіта:
SELECT Особи.Прізвище, Освіта.Освіта
FROM Особи INNER JOIN Освіта
ON Особи.КодОсвіти = Освіта.КодОсвіти
WHERE (((Особи.Стать)="Ж"))
ORDER BY Особи.Прізвище;
Для формування списків та специфікацій інструкції SELECT використовуються вирази, що визначають деяке значення. Синтаксис виразів передбачає структуру, що базується на константах того чи іншого типу, фунціях та виразах. Вирази, функції і константи з¢єднуються між собою операторами: арифметичними – для побудови виразу з операндів числового типу (+, -, *, /, \, ^, MOD), логічними – для побудови виразу з операндів логічного типу (AND, OR, NOT) і операндів числового типу (=, >, >=, <=, <, <>), текстовими – для побудови виразу з операндів текстового типу (&). Приклади виразів:
§ "beta"&"01" – конкатенація рядків beta та 01
§ price*50 - добуток змінної (або поля) числового типу price та числа 50
§ "Дата народження: "+CDATE(date) – конкатенація рядка Дата народження: та текстового виразу після перетворення змінної (поля) date типу Дата/Время у значення текстового типу.
До запиту SQL часто включаються параметри, значення яких можуть бути введені користувачем або з елементів управління активної форми. Для використання таких параметрів необхідно їх попередньо визначити за допомогою оператора PARAMETERS, синтаксис якого передбачає присутність імені параметра (ідентифікатора) та його типу:
PARAMETERS < ідентифікатор> <тип даних> …
Серед типів даних є логічний (Bit), грошовий (Currency), дата/час (DateTime), цілий (Integer), текстовий (Text) та інші.
Інструкції SQL використовуються також і для вилучення, вставки або оновлення даних, а також для побудови нової таблиці з даними, що існують. Запити на зміну даних – це достатньо потужний засіб, оскільки така дія впливає відразу на множину записів. Наприклад, інструкції UPDATE або DELETE діють на всі записи базових таблиць, для яких виконується умова відбору. Разом з інструкцією вилучення існує інструкція додавання записів INSERT. Для побудови нової таблиці із значеннями, що вибрані з однієї або декількох таблиць, використовується інструкція SELECT INTO ….