Основы языка SQL
В настоящее время SQL (англ. structured query language — язык структурированных запросов) является стандартным реляционным языком БД и поддерживается всеми распространенными реляционными и объектнореляционными СУБД. Версия стандарта SQL-92, также известная как SQL2, значительно расширила предыдущую версию, определив средства манипулирования схемой БД, управление транзакциями и сессиями… Читать ещё >
Основы языка SQL (реферат, курсовая, диплом, контрольная)
В настоящее время SQL (англ. structured query language — язык структурированных запросов) является стандартным реляционным языком БД и поддерживается всеми распространенными реляционными и объектнореляционными СУБД.
В 1970;х гг. в IBM для проверки возможностей практической реализации реляционной модели данных разрабатывалась экспериментальная СУБД System R. Для нее был создан язык SEQUEL (англ. Structured English QUEry Language). Язык получил достаточно широкую популярность и несколько позже, из-за существования зарегистрированной торговой марки SEQUEL, был переименован в SQL.
Поддержка языка SQL, независимо реализуемая в СУБД ряда производителей, привела к необходимости разработки стандартов этого языка. Разработка спецификации SQL была начата Американским национальным институтом стандартов (ANSI) в 1982 г. Стандарт был принят ANSI в 1986 г. и в 1987 г. одобрен Международной организацией по стандартизации (ISO). Эта версия стандарта SQL обычно обозначается как SQL-86.
Следующая версия выпущена в 1989 г. (SQL-89). В ней, в частности, были четко стандартизованы синтаксис и семантика операторов выборки данных и манипулирования данными, определены средства ограничения целостности БД [15].
Версия стандарта SQL-92, также известная как SQL2, значительно расширила предыдущую версию, определив средства манипулирования схемой БД, управление транзакциями и сессиями, подключения к БД и т. д.
В выпущенную в 1999 г. версию SQL: 1999 (SQL3) добавлена поддержка регулярных выражений, рекурсивных запросов, поддержка триггеров, базовые процедурные расширения, нескалярные типы данных и некоторые объектно-ориентированные возможности.
Последующие версии — SQI-:2003, SQL:2006, SQL:2008 — внесли поддержку данных в формате XML, совместного использования в запросах SQL и языка запросов к XML-данным XQuery (SQL:2006) и ряд других новшеств.
Начиная с SQL:1999 стандарт разбивается на части, каждая из которых оформляется в виде отдельного документа. После утверждения в ISO эти документы выпускаются также в виде стандартов этой организации (серия 9075). Например, вторая часть SQL:2008 выпущена как ISO/IEC 9075−2:2011 Information technology — Database languages — SQL — Part 2: Foundation (SQL/Foundation) («Информационные технологии. Языки базы данных. Язык структурированных запросов (SQL). Часть 2. Основа»).
Язык SQL включает три подъязыка:
- • Data Definition Language (DDL) — язык определения данных, включающий такие операторы, как CREATE, ALTER, DROP;
- • Data Manipulation Language (DML) — язык обработки данных, который позволяет запрашивать и изменять данные и включает операторы SELECT, INSERT, UPDATE, DELETE;
- • Data Control Language (DCL) — язык управления данными, позволяет управлять разрешениями на доступ к данным и включает операторы GRANT и REVOKE.
Следует учитывать, что стандарт SQL может не в полной мере поддерживаться конкретной СУБД. И наоборот, конкретная СУБД может давать возможность использования в SQL-выражениях дополнительных функций, не предусмотренных стандартом. Таким образом, большинство компанийразработчиков поддерживает собственный диалект языка SQL, который может быть совместим с одной из версий стандарта SQL. Ниже приведен перечень некоторых популярных СУБД и наименования диалектов SQL:
- • Microsoft SQL Server — Transact-SQL или T-SQL;
- • Microsoft Access — Jet SQL;
- • Oracle Database — PL/SQL;
- • IBM DB2 — SQL PL.
По ходу изложения материала в качестве примеров будут приводиться некоторые расхождения в правилах записи отдельных выражений в стандарте SQL и Transact-SQL. Подобные расхождения есть и у других производителей СУБД.
Используемые в SQL термины отличаются от принятых в реляционной алгебре. В частности, используются названия «таблица», «строка» и «столбец» вместо «отношение», «кортеж», «атрибут». Также необходимо отметить, что результат запроса на SQL может содержать повторяющиеся строки. Это отличает его от результата реляционного выражения, где повторяющихся кортежей быть не может.