SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.
SQL основывается на реляционной алгебре.
Язык SQL делится на три части:
- операторы определения данных (Data Definition Language, DDL)
- операторы манипуляции данными (Data Manipulation Language, DML)
- операторы определения доступа к данным (Data Control Language, DCL)
История[]
В начале 1970-х годов в компании IBM была разработана экспериментальная СУБД «System R» на основе языка SEQUEL (Structured English Query Language — структурированный английский язык запросов). Позже по юридическим соображениям язык SEQUEL был переименован в SQL. Когда в 1986 году первый стандарт языка SQL был принят ANSI (American National Standards Institute), официальным произношением стало [,es kju:' el] — эс-кью-эл. Несмотря на это, даже англоязычные специалисты по прежнему часто называют SQL сиквел, вместо эс-кью-эл (по-русски также часто говорят «эс-ку-эль»). Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования.
Собственно разработкой языка запросов занимались Чэмбэрлин (Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.
В 1981 году IBM объявила о своём первом основанном на SQL программном продукте — SQL/DS. Чуть позже к ней присоединились Oracle, Relational Technology и другие производители.
Первый стандарт языка SQL был принят ANSI (Американским национальным институтом стандартизации) в 1986 и ISO (Международной организацией по стандартизации) в 1987 (так называемый SQL level 1) и несколько уточнён в 1989 году (SQL level 2). Дальнейшее развитие языка поставщиками СУБД потребовало принятия в 1992 нового расширенного стандарта (ANSI SQL-92 или просто SQL-2). Следующим стандартом стал SQL-99. В настоящее время действует стандарт, принятый в 2003 году (SQL-3).
Среди достоинств использования (применения) SQL в прикладной сфере можно выделить следующие:
- Независимость от конкретной СУБД
Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую и наоборот. Существуют системы, разработчики которых изначально закладывались на применение по меньшей мере нескольких СУБД (например: система электронного документооборота Documentum может работать как с Oracle Database, так и с Microsoft SQL Server и IBM DB2)
- Наличие стандартов
Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка.
- Полноценность как языка для управления данными
С помощью SQL программист или пользователь может просматривать, изменять и удалять данные, что является основой самого понятия СУБД.
Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов он стал настолько сложным, что превратился в инструмент программиста.
Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД (например, Oracle, Microsoft, MySQL AB, Borland), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом появляются специфичные для каждой конкретной СУБД диалекты языка SQL.
Стандарты[]
Ревизии SQL:
Год | Названия | Комментарии |
---|---|---|
1986 | SQL-86, SQL-87 | Впервые опубликован ANSI. Ратифицирован ISO в 1987. |
1989 | SQL-89 | Небольшие изменения. |
1992 | SQL-92, SQL-2 | Существенные изменения. |
1999 | SQL:1999, SQL-3 | Добавлены регулярные выражения, рекурсивные запросы, триггеры и некоторые обьекто-ориентированные нововведения. |
2003 | SQL:2003 | Объявлены XML-зависимые нововведения. |
Безопасность[]
- SQL injection
- Хранимые процедуры
См. также[]
- QBE
Ссылки[]
- Русскоязычный форум по СУБД и SQL
- SQL введение и руководство
- Упражнения по SQL. Самоучитель по SQL DML (На русском и английском языках)
- Стандарт SQL-92 на английском языке
- Интерактивный учебник по SQL с выполнением запросов на SQL Server
Литература[]
- Бен Форта "Освой самостоятельно язык запросов SQL", 3-е издание : Пер. с англ. - М. : Издательский дом "Вильямс", 2005. - 288 стр. с ил.
- Пол Уилтон, Джон Колби "Язык запросов SQL для начинающих" : Пер. с англ. - М. : Компьютерное изд-во "Диалектика", 2005. - 496 стр. с ил.
- Кен Хендерсон "Профессиональное руководство по Microsoft SQL Server: структура и реализация" : Пер.с англ. - М. : Издательский дом "Вильямс", 2005. - 1056 стр. с ил.