Интернет и базы данных. Часть 05. Язык SQL - структурированный язык запросов
Язык SQL (Structured Query Language - структурированный язык запросов) - это основное средство общения с реляционными базами данных. Более того: для большинства реляционных СУБД использование языка SQL - это единственный способ выборки и модификации информации в базе.
Язык SQL был разработан в 1970 году компанией IBM и достаточно быстро получил широкое признание. Разработчики реляционных СУБД один за другим включали SQL в свои продукты, но диалекты языка в разных СУБД достаточно сильно отличались.
Массовое распространение SQL в различных, довольно сильно отличающихся диалектах привело к необходимости его стандартизации. В 1986 году ISO (Международная организация по стандартизации) и ANSI (Американский национальный институт стандартов) опубликовали стандарт SQL 86, который затем дважды - в 1989 и в 1992 годах - пересматривался. Стандарт SQL 92 действует по сей день.
В настоящее время практически все разработчики СУБД декларируют соответствие диалектов языка SQL, реализованных в их продуктах, стандарту SQL 92. Но при ближайшем рассмотрении оказывается, что не все так радужно. Те или иные, пусть совсем небольшие, отклонения от стандарта SQL 92 присутствуют во всех СУБД, с которыми мне доводилось работать.
Основные принципы языка SQL
SQL - непроцедурный язык. В SQL не записываются шаг за шагом все инструкции, а просто говорится, что нужно сделать. Например: выбрать все строки таблицы Users, в которых UserFIO = "Вася Пупкин". Как это будет делаться, в каком порядке блоки данных будут считываться с диска, какие циклы надо организовать для обработки запроса и т.п. - это уже забота СУБД, а не программиста.
Язык SQL предназначен только для взаимодействия с базой данных. Средств разработки законченных программ (организации красивых экранных форм, печати отчетов и т.п.) в нем нет.
Составные части языка SQL
Традиционно выделяют две основных части языка SQL (хотя деление это во многом условное):
- DDL - Data Definition Language - Язык определения данных. DDL включает в себя операторы создания, модификации, удаления объектов (Create, Alter, Drop...). К DDL обычно также относят операторы управления правами пользователей (Grant, Revoke).
- DML - Data Manipulation Language - Язык манипулирования данными. DML предназначен для ведения (добавления, модификации, удаления) и выборки информации из базы данных. Основные операторы DML - Select, Insert, Update и Delete.
Интерактивный, статический и динамический SQL
Выше уже упоминалось, что средств разработки законченных программ в составе языка SQL нет. Как же его использовать на практике?
- Все известные мне СУБД содержат в своем составе утилиты, позволяющие пользователю непосредственно вводить операторы SQL в режиме, скажем так, командной строки, либо запускать на выполнение файлы, содержащие операторы SQL. Получаемая в результате выполнения запросов информация, а также служебные и диагностические сообщения могут быть выведены на экран, в текстовый файл или на принтер. Такой режим называется интерактивный, или автономный, SQL.
- Операторы SQL могут быть непосредственно включены в программы на других языках программирования. В настоящее время практически все языки программирования высокого уровня (в частности, C++, Object Pascal (Delphi) и другие) содержат средства подключения к базам данных и выполнения SQL-операторов. Такой режим называется статический SQL.
- Операторы SQL могут быть динамически сгенерированы приложением и затем выполнены. Такой режим называется динамический SQL.
Новые комментарии