Язык SQL. Основные группы инструкции языка SQL:DDL, DML, DCL, TCL.
Язык SQL(Structured Query Language — «язык структурированных запросов» ).
SQL разработан в 1974 году фирмой IBM для экспериментальной реляционной СУБД System R.
Характеристики SQL
1)Мощный компактный язык манипулирования реляционными данными с небольшим (менее 30) набором предложений (команд).
2)Предложения языка ориентированы на конечный результат обработки данных, а не на процедуру этой обработки. При выполнении команды SQL сам определяет, где находятся данные, какие индексы и наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных.
3)SQL может использоваться как:
• интерактивный (для выполнения запросов);
• встроенный (для построения прикладных программ).
Кроме того, он предоставляет возможность выполнять в своих предложениях:
• арифметические вычисления (включая разнообразные функциональные преобразования), обработку текстовых строк и выполнение операций сравнения значений арифметических выражений и текстов;
• упорядочение строк и (или) столбцов при выводе содержимого таблиц на печать или экран дисплея;
• создание представлений (виртуальных таблиц), позволяющих пользователям иметь свой взгляд на данные без увеличения их объема в базе данных;
• запоминание выводимого по запросу содержимого таблицы, нескольких таблиц или представления в другой таблице (реляционная операция присваивания).
• агрегирование данных: группирование данных и применение к этим группам таких операций, как среднее, сумма, максимум, минимум, число элементов и т.п.
Операторы SQL делятся на:
I. операторы определения данных (Data Definition Language, DDL)
1)CREATE создает объект БД ( DATABASE(саму базу), TABLE (таблицу), VIEW(представление) и т. д.
2)ALTER изменяет объект
3)DROP удаляет объект
Примеры
CREATE TABLE Таблица1( Имя CHAR (15), Фамилия CHAR (30) );
ALTER TABLE Сотрудники ADD COLUMN Оклад MONEY;
ALTER TABLE Сотрудники DROP COLUMN Оклад;
II. операторы манипуляции данными (Data Manipulation Language, DML)
1)SELECT считывает данные, удовлетворяющие заданным условиям (FROM, WHERE, ORDER BY(ASC,DESC), GROUP BY, HAVING, JOIN(INNER,LEFT,RIGHT))
Примеры с SELECT:
· FROM
SELECT Count (*) AS ЧислоСотрудников, Avg (Оклад) AS СреднийОклад, Max (Оклад) AS МаксимальныйОклад FROM Сотрудники;
· WHERE
SELECT Фамилия, Оклад FROM Сотрудники WHERE Оклад > 8000;
· GROUP BY
SELECT Должность, Count (Должность) AS Итог FROM Сотрудники WHERE Город = 'Москва' GROUP BY Должность;
· GROUP BY + HAVING
SELECT Должность, Count(Должность) AS Итого FROM Сотрудники WHERE Город = 'Москва' GROUP BY Должность HAVING Count( Должность ) > 1;
· ORDER BY
SELECT Фамилия, Имя FROM Сотрудники ORDER BY Фамилия DESC;
· JOIN + INNER
SELECT Категория, Марка FROM Типы INNER JOIN Товары ON Типы.КодТипа = Товары.КодТипа;
· JOIN + LEFT
SELECT Категория,Марка FROM Типы LEFT JOIN Товары
ON Типы.КодТипа = Товары.КодТипа;
2)INSERT добавляет новые данные
INSERT INTO Сотрудники (Имя, Фамилия, Должность) VALUES ('Павел', 'Власов', 'Стажер');
3)UPDATE изменяет существующие данные
UPDATE Сотрудники SET Подчиняется = 5 WHERE Подчиняется = 2;
4)DELETE удаляет данные
DELETE * FROM Сотрудники WHERE Должность = 'Стажер';
III. операторы определения доступа к данным (Data Control Language, DCL)
1)GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом
2)REVOKE отзывает ранее выданные разрешения
3)DENY задает запрет, имеющий приоритет над разрешением
IV. операторы управления транзакциями (Transaction Control Language, TCL)
1)BEGIN TRANC начинает транзакцию
2)COMMIT применяет транзакцию.
3)ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции.