refik.in.ua 1

Тема: Мова запитів SQL


1. Мови запитів QBE і SQL

2. Мова запитів за зразком QBE

3. Структурована мова запитів SOL

4. Оператор SELECT мови запитів SOL

1. Мови запитів QBE і SQL

Збережені в базі дані можна обробляти (переглядати й редагувати) «вручну» - за допомогою наявних у кожної СУБД засобів перегляду й редагування даних у таблицях. Для підвищення ефективності множинної обробки даних (редагування й вибору даних з таблиць) створюються й виконуються запити.

Запит являє собою спеціальним образом описана вимога, що визначає склад вироблених над БД операцій по вибірці або модифікації збережених даних.

Для підготовки запитів за допомогою різних СУБД, як правило, використаються дві основні мови опису запитів:


  • язик QBE (Query By Example) - язик запитів за зразком;

  • SOL (Structured Query Language) - структурований язик запитів.

По можливостях маніпулювання даними при описі запитів зазначені язики практично еквівалентні. Головна відмінність між ними полягає в способі формування запитів:

  • язик QBE припускає ручне або візуальне формування запиту,

  • використання SQL означає програмування запиту.


2. Мова запитів за зразком QBE

Мова QBE дозволяє задавати складні запити до БД шляхом заповнення пропонованої СУБД запитальної форми. Такий спосіб завдання запитів забезпечує високу наочність і не вимагає вказівки алгоритму виконання операції - досить описати зразок очікуваного результату. У кожній із сучасних реляционных СУБД є свій варіант язика QBE.

За допомогою язика QBE можна задавати запити однотабличні й многотабличные (выбирающие або обробні дані з декількох зв'язаних таблиць).

При завданні запитів за допомогою язика QBE припустимі наступні операції: вибірка, обчислення й модифікація даних; вставка й видалення записів. Результатом виконання запиту може бути нова таблиця або обновлена вихідна таблиця.


Вибірка, вставка, видалення й модифікація даних і записів можуть виконуватися з використанням умов, що задають за допомогою логічних виражень. Обчислення над даними задаються за допомогою арифметичних виражень і породжують у відповідних таблицях нові - обчислюють поля, що.

У багатьох сучасних СУБД, наприклад, в /Access і Visual FoxPro, багато дій по підготовці запитів за допомогою язика QBE виконуються візуально за допомогою миші. Зокрема, візуальне зв'язування таб;п и i при підготовці запиту виконується не елементами прикладів, а просто «протаскиванием» мишею поля однієї таблиці до поля іншої.
3. Структурований мова запитів SOL

Структурований мова запитів SOL заснований на реляционном вирахуванні зі змінними кортежами. Мова має кілька стандартів, найпоширенішими з яких є SOL-89 і SQL-92.

SOL призначений для виконання операцій над таблицями (створення, видалення, зміна структури), і над даними таблиць (вибірка, зміна, додавання й видалення), а також деяких супутніх операцій. SOL є непроцедурною мовою й не містить наявних у звичайних мовах програмування операторів керування, організації підпрограм, вводу-висновку й т.п. У зв'язку із цим SQL автономно не використається, а звичайно занурений у середовище убудованої мови програмування СУБД (наприклад, мови FoxPro СУБД Visual FoxPro) або навіть процедурної мови типу C++ або Pascal.

У сучасних СУБД із інтерактивним інтерфейсом можна створювати запити, не застосовуючи SOL. Однак його застосування в деяких випадках дозволяє розширити можливості використання СУБД. Приміром, при підготовці запиту в середовищі /Access можна перейти з вікна конструктора запитів (завдання запиту за зразком) у вікно з еквівалентним оператором SOL. Підготовку нового запиту шляхом редагування вже наявного в ряді випадку простіше виконати шляхом зміни оператора SQL.

До операторів SOL для роботи із БД ставляться:

CREATE DATABASE - створення БД


SHOW DATABASE - перегляд БД

START DATABASE - активізація БД

STOP DATABASE - закриття БД

DROP DATABASE - видалення БД

До числа основних операторів SOL для роботи з таблицями ставляться:

CREATE TABLE - створення таблиці;

DROP TABLE - видалення таблиці;

CREATE INDEX - створення індексу;

DROP INDEX - видалення індексу;

ALTER TABLE - зміна структури таблиці;

До числа основних операторів SOL для роботи з даними ставляться:

SELECT - вибірка записів

UPDATE - зміна записів

INSERT - вставка записів

DELETE -видалення записів.

Додаткові оператори SOL:

CREATE VIEW - створення подання

DROP VIEW - видалення подання

CREATE SYNONYM - створення синоніма;

GRANT - призначення привілею для роботи з вибірками й таблицями

REVOKE - видалення привілею для роботи з вибірками й таблицями.
4. Оператор SELECT мови запитів SOL

У спрощеному виді оператор має наступний формат:

SELECT |ALL|DISTINCT] <список даних>

FROM <список таблиць>

[WHERE <умова вибірки>1

|GROUP BY <ім'я стовпця> [, <ім'я стіл6ца>]...]

[HAVING <умова пошуку>]

[ORDER BY <Специфікація сортування>[,<специфікація сортування>]...]
Оператор SELECT дозволяє виконувати вибірку й обчислення над даними однієї або декількох таблиць. Результатом виконання оператора є відповідна таблиця, що може мати (ALL) або не мати (DISTINCT) повторювані рядки.

У списку даних можна задавати імена стовпців і вираження над ними, наприклад арифметичні. Якщо записи відбираються з декількох таблиць, то використають складені імена <ім'я таблиці>.<ім'я стовпцях

Приклад. Є таблиця Goods (товари) з полями: Code (код), Name (найменування) і Cost (вартість). Потрібно вивести вартості й коди товарів, вартість яких не перевищує 500 одиниць.


Для рішення поставленого завдання можна записати оператор SELECT у такий спосіб:

SELECT Code, Cost

FROM Goods

WHERE Cost<=500

У різних СУБД склад операторів SOL може трохи відрізнятися.


Типи команд SQL
Основні категорії команд, що реалізують в SQL виконання різних функцій.

Серед таких функцій - побудова об'єктів бази даних, керування об'єктами, поповнення таблиць бази даних новими даними, відновлення даних, уже наявних у таблицях, виконання запитів, керування доступом користувачів до бази даних, а також здійснення загального адміністрування бази даних.

Такими категоріями є:

• DDL (Data Definition Language - язик визначення даних);

• DML (Data Manipulation Language - язик маніпуляцій даними);

• DQL (Data Query Language - язик запитів до даних);

• DCL (Data Control Language - язик керування даними);

• команди адміністрування даних;

• команди керування транзакціями.
1. Визначення структур бази даних (DDL)

Язик визначення даних (DDL) є частиною SQL, що дає користувачеві можливість створювати різні об'єкти бази даних і перевизначати їхню структуру, наприклад, створювати або видаляти таблиці.

Серед основних команд DDL наступні команди.

CREATE TABLE

ALTER TABLE

DROP TABLE

CREATE INDEX

ALTER INDEX

DROP INDEX
2. Маніпуляція даними (DML)

Язик маніпуляцій даними (DML) є частиною SQL, що дає користувачеві можливість маніпулювати даними усередині об'єктів реляционной бази даних.

Основні команди DML:

INSERT

UPDATE

DELETE
3. Добір даних (DQL)

Хоча цей розділ язика представлений тільки однією командою, для користувача реляционной бази даних язик запитів до даних (DQL) є самою головною частиною SQL. Цією командою є команда


SELECT

Ця команда, що має безліч опцій і необов'язкових параметрів, використається для побудови запитів до реляционным баз даних. З її допомогою можна конструювати запити будь-якої складності - від самих загальних до дуже спеціальних і від найпростіших до неймовірно складних.

Запит - це вимога на одержання інформації з бази даних.
4. Язик керування даними (DCL)

Команди керування даними в SQL дозволяють здійснювати контроль над можливістю доступу до даних усередині бази даних. Команди DCL звичайно використаються для створення об'єктів, що ставляться до керування доступом користувачів до бази даних, а також для призначення користувачам підходящих рівнів привілеїв доступу. От деякі з команд керування даними:

ALTER PASSWORD

GRANT

REVOKE

CREATE SYNONYM
5. Команди адміністрування даних

Команди адміністрування даних дають користувачеві можливість виконувати аудит і аналіз операцій усередині бази даних. Ці команди можуть також допомогти при аналізі продуктивності системи даних у цілому. От дві команди адміністрування даних загального виду:

START AUDIT

STOP AUDIT

He плутайте адміністрування даних з адмініструванням всієї бази даних. Адміністрування бази даних - це здійснення загального керування базою даних, що припускає можливість використання команд будь-якого рівня.
6. Команди керування транзакціями

На додаток до всьому вужі розглянутим категоріям команд є ще команди, що дозволяють користувачеві управляти транзакціями бази даних.

Команда COMMIT використається для того, щоб зберегти транзакції.

Команда ROLLBACK використається для того, щоб скасувати транзакції.

Команда SAVEPOINT створює крапки усередині груп транзакцій, до яких відсилає команда ROLLBACK.

Команда SET TRANSACTION дозволяє призначити транзакції ім'я.