Лекция 5: Язык SQL. Формирование запросов к базе данных
План
1.История развития SQL
2.Структура SQL
3.Типы данных
4.Оператор выбора SELECT
5.Применение агрегатных функций и вложенных запросов в операторе выбора
6.Вложенные запросы
7.Внешние объединения
8.Операторы манипулирования данными
9.Задания для самостоятельной работы
• SQL (Structured Query Language) — Структурированный Язык Запросов — стандартный язык запросов по работе с реляционными БД. Язык SQL появился после реляционной алгебры, и его прототип был разработан в конце 70-х годов в компании IBM Research. Он был реализован в первом прототипе реляционной СУБД фирмы IBM System R.
• Первый международный стандарт языка SQL был принят в 1989 г. (далее мы будем называть его SQL/89 или SQL1). Иногда стандарт SQL1 также называют стандартом ANSI/ISO
• В конце 1992 г. был принят новый международный стандарт языка SQL, который в дальнейшим будем называть SQL/92 или SQL2.
• В 1999 году появился новый стандарт, названный SQL3. Если отличия между стандартами SQL1 и SQL2 во многом были количественными, то стандарт SQL3 соответствует качественным серьезным преобразованиям. В SQL3 введены новые типы данных, при этом предполагается возможность задания сложных структурированных типов данных, которые в большей степени соответствуют объектной ориентации, добавлен раздел, который вводит стандарты на события и триггеры .
SQL нельзя в полной мере отнести к традиционным языкам программирования, он не содержит традиционные операторы, управляющие ходом выполнения программы, операторы описания типов и многое другое, он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных. Операторы SQL встраиваются в базовый язык программирования, которым может быть любой стандартный язык типа C++, PL, COBOL и т. д. Кроме того, операторы SQL могут выполняться непосредственно в интерактивном режиме.
В отличие от реляционной алгебры, где были представлены только операции запросов к БД, SQL является полным языком, в нем присутствуют не только операции запросов, но и операторы, соответствующие Data Definition Language (DDL) — языку описания данных. Кроме того, язык содержит операторы, предназначенные для управления (администрирования ) БД.
SQL содержит разделы, представленные:
– Операторы определения данных DDL;
– Операторы манипулирования данными Data Manipulation Lanquaqe (DML) ;
– Язык запросов Data Query Lanquaqe (DQL);
– Средства управления транзакциями;
– Средства администрирования данных;
– Программный SQL.
В коммерческих СУБД набор основных операторов расширен. В большинство СУБД включены операторы определения и запуска хранимых процедур и операторы определения триггеров.
Операторы определения данных DDL
Оператор
Смысл
Действие
CREATE TABLE
Создать таблицу
Создает новую таблицу в БД
DROP TABLE
Удалить таблицу
Удаляет таблицу из БД
ALTER TABLE
Изменить таблицу
Изменяет структуру существующей таблицы или ограничения целостности, задаваемые для данной таблицы
Создает индекс для некоторой таблицы для обеспечения быстрого доступа по атрибутам, входящим в индекс
DROP INDEX
Удалить индекс
Удаляет ранее созданный индекс
Операторы манипулирования данными Data Manipulation Lanquaqe (DML)
Оператор
Смысл
Действие
DELETE
Удалить строки
Удаляет одну или несколько строк, соответствующих условиям фильтрации, из базовой таблицы. Применение оператора согласуется с принципами поддержки целостности, поэтому этот оператор не всегда может быть выполнен корректно, даже если синтаксически он записан правильно
INSERT
Вставить строку
Вставляет одну строку в базовую таблицу. Допустимы модификации оператора, при которых сразу несколько строк могут быть перенесены из одной таблицы или запроса в базовую таблицу
UPDATE
Обновить строку
Обновляет значения одного или нескольких столбцов в одной или нескольких строках, соответствующих условиям фильтрации
Язык запросов Data Query Lanquaqe (DQL)
Оператор
Смысл
Действие
SELECT
Выбрать строки
Оператор, заменяющий все операторы реляционной алгебры и позволяющий сформировать результирующее отношение, соответствующее запросу