Язык SQL – назначение, особенности, преимущества, существующие стандарты.




 

В разработанной Коддом реляционной модели были определены как требования к организации таблиц, содержащих данные, так и язык, позволяющий работать с ними. Впоследствии этот язык получил название SQL (Structured Query Language - структурированный язык запросов).

 

К достоинствам языка SQL относится наличие международных стандартов.

 

Начиная с 1986 года комитеты ISO (International Organization for Standardization) и ANSI (American National Standards Institute) приступили к созданию ряда стандартов языка SQL, которые впоследствии были приняты и получили следующие названия:

SQL86,

SQL89,

SQL92

SQL99.

 

В стандарте SQL92 было определено три уровня соответствия:

  • основной (Entry);
  • средний (Intermediate);
  • полный (Full).

 

Новый стандарт SQL99, при разработке именовавшийся как SQL3, стандартизировал объектные расширения языка SQL и некоторые процедурные расширения языка SQL. В стандарте SQL99 определено обязательное функциональное ядро и набор уровней расширенного соответствия.

 

Каждый уровень описывает набор возможностей языка SQL, которые должны поддерживать реализации СУБД, претендующие на данный уровень соответствия.

 

При этом объявлено, что стандарт SQL99 является открытым для всех последующих уровней расширенного соответствия, которые могут появиться в дальнейшем.

 

Структурированный язык запросов SQL реализуется в следующих формах:

· интерактивный SQL;

· статический SQL;

· динамический SQL;

· встроенный SQL.

 

Основные инструкции SQL.

 

В составе SQL могут быть выделены следующие группы инструкций:

 

- язык описания данных - DDL (Data Definition Language);

 

- язык манипулирования данными - DML (Data Manipulation Language);

 

- язык управления транзакциями.

 

Инструкции DDL предназначены для создания, изменения и удаления объектов базы данных. Их описание приведено в табл. 1.

Таблица 1. Инструкции языка определения данных (DDL)

Инструкция Назначение
CREATE Создание новых объектов (таблиц, полей, индексов и т. д.)
DROP Удаление объектов
ALTER Изменение объектов

 

Пример

CREATE TABLE Фирмы

(КодФирмы TEXT (5),

НазвФирмы TEXT (30),

АдресФирмы TEXT (40),

УстФонд DOUBLE);

 

 

ALTER TABLE Фирмы ADD COLUMN Директор TEXT.(30);

 

 

DROP TABLE Фирмы;

 

Инструкции DML (табл..2) позволяют выбирать данные из таблиц, а также добавлять, удалять и изменять их.

Таблица 2. Инструкции языка манипулирования данными (DML)

Инструкция Назначение
SELECT Выполнение запроса к базе данных с целью отбора записей, удовлетворяющих заданным критериям
INSERT Добавление записей в таблицы базы данных
UPDATE Изменение значений отдельных записей и полей
DELETE Удаление записей из базы данных

 

Перечень основных предложений языка SQL приведен в табл. 3.

Таблица 3 - Основные предложения языка SQL

Инструкция Назначение
FROM Указывает имя таблицы, из которой должны быть отобраны данные
WHERE Специфицирует условия, которым должны удовлетворять выбираемые данные
GROUP BY Определяет, что выбираемые записи должны быть сгруппированы
HAVING Задает условие, которому должна удовлетворять каждая группа отобранных записей
ORDER BY Специфицирует порядок сортировки записей

 

Запросы в SQL.

Оператор SELECT позволяет формировать запрос к базе данных.

 

ПРИМЕР

SELECT * FROM Фирмы;

 

SELECT Int([УстФонд]/500)*500 AS Диапазон,

Count(КодФирмы) AS ЧислоФирм

FROM Фирмы

GROUP BY Int([УстФонд]/500)*500;

 

 

Кроме стандартных операторов сравнения, таких как =, <>, >, <, >=, <= могут быть использованы следующие операторы:

  • BETWEEN

Например:

x BETWEEN y AND z эквивалентно выражению

(x<=z) AND (x>=y);

· IN - совпадает с одним из перечисленных в списке. Например: x IN (a,b,c);

· LIKE - возвращает TRUE для значений, совпадающих с указанной подстрокой символов. Например: x LIKE 'abc';

· IS NULL - возвращает TRUE, если значение равно NULL. Этот предикат возвращает только значение TRUE или FALSE. Например: x IS NULL;

  • EXISTS - предикат существования, возвращающий значение TRUE, если указанный в нем подзапрос содержит хотя бы одну строку.

 

Фраза GROUP BY оператора SELECT применяется для определения группы строк, над которыми выполняются функции агрегирования.

К функциям агрегирования относятся следующие функции языка SQL:

  • COUNT - подсчет количества всех значений столбцов в группе;
  • AVG - определение среднего значения;
  • SUM - подсчет суммы всех значении группы;
  • MAX - определение максимального значения из группы;
  • MIN - определение минимального значения из группы.

 

Фраза HAVING оператора SELECT определяет предикат аналогично фразе WHERE, но применяемый к строкам, полученным в результате выполнения функций агрегирования.

 

Фраза ORDER BY применяется для упорядочивания результирующего набора, которое выполняется в соответствии со значениями столбцов, указанных в списке после фразы ORDER BY.

 

При упорядочивании можно указать опцию ASC (по возрастанию) или DESC (по убыванию).

 

Транзакции в БД

 

Транзакция - это логически завершенная единица работы, содержащая одну или более элементарных операций обработки данных.

 

Инструкции языка управления транзакциями приведены в табл. 4.

Таблица 4. Инструкции языка управления транзакциями

Инструкция Назначение
COMMIT Фиксация в базе данных всех изменений, сделанных текущей транзакцией
SAVEPOINT Установка точки сохранения (начала транзакции)
ROLLBACK Откат изменений, сделанных с момента начала транзакции

 

Следующая схема демонстрирует принцип использования транзакций.

 

 

Большинство коммерческих СУБД позволяет устанавливать режим автоматической фиксации изменений - автокоммит.

Для установки этого режима используется оператор SET AUTOCOMMIT ON;

а для отмены режима - SET AUTOCOMMIT OFF;.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: