Приложение-клиент при работе по технологии клиент-сервер формирует запрос к серверу, на котором расположена БД, на языке SQL, являющемся стандартом для реляционных БД. Удаленный сервер принимает запрос и переадресует его SQL-серверу БД. SQL-сервер интерпретирует запрос, выполняет его в базе данных, формирует результаты выполнения запроса и выдает его приложению-клиенту.
SQL (Structured Query Language) переводится как структурированный язык запросов. Он предназначен для работы с реляционными БД. SQL сам определяет, какую наиболее эффективную последовательность операций следует использовать для их получения – эти детали не требуется указывать в запросе к базе данных при использовании SQL.
По технологии «Клиент-Сервер», запросы пользовательских персональных компьютеров (Клиентов) обрабатываются на специальных серверах баз данных (Серверах), а на пользовательские компьютеры возвращаются лишь результаты обработки запроса. При этом, естественно, нужен единый язык общения с Сервером и в качестве такого языка используется SQL. Поэтому все современные версии реляционных СУБД (DB2, Oracle, Ingres, Informix, Sybase) используют технологию «Клиент-Сервер» и язык SQL.
В настоящее время существует две разновидности языка SQL: интерактивный и программный (встроенный).
Интерактивный SQL используется для функционирования непосредственно в базе данных. В этом случае введенная пользователем команда выполняется немедленно.
Программный (встроенный) SQL предназначен для встраивания запросов в прикладную программу. Существует несколько видов программного SQL: статический, динамический и API-интерфейсы.
Статический SQL– разновидность программного SQL, предназначенная для встраивания SQL-операторов в текст программы на языке программирования высокого уровня.
Динамический SQL– разновидность программного SQL, предназначенная для встраивания SQL-операторов в текст программы на языке программирования высокого уровня, допускающая динамическое формирование и выполнение запросов во время работы программы.
API-интерфейсы – разновидность программного SQL, основанная на использовании библиотек функций, разработанных для обеспечения связи прикладной программы с СУБД посредством выполнения SQL-запросов.
Существует несколько основных типов операторов SQL.
1. DDL (Data Definition Language) – язык определения данных. Он дает возможность создавать различные объекты БД и переопределять их структуру, например, создавать или удалять таблицы. Примеры операторов:
CREATE ALTER DROP RENAME
2. DML (Data Manipulation Language) – язык манипуляции данными. Он дает возможность манипулировать данными внутри объектов реляционной БД. Примеры операторов:
INSERT UPDATE DELETE
3. DQL (Data Query Language) – язык запросов к данным. Он используется для построения запросов к реляционным БД. Примеры операторов:
SELECT
4. DCL (Data Control Language) – язык управления данными. Он позволяет осуществлять контроль над возможностью доступа пользователей к данным внутри БД, а также для назначений пользователям привилегий доступа. Примеры операторов:
ALTER PASSWORD GRANT REVOKE
5. DAL (Data Administration Language) – язык администрирования данных. Он дает возможность выполнять аудит и анализ операций внутри БД. Примеры операторов:
START AUDIT STOP AUDIT
6. Команды управления транзакциями. Примеры операторов:
КОМИССИОННЫЕIT ROLLBACK SAVE POINT SET TRANSACTION
Несмотря на то, что стандарт языка SQL определяетсяANSI (американским национальным институтом стандартов) и ISO (международной организацией по стандартизации), разработчики коммерческих СУБД без уведомления расширяют SQL ANSI, интегрируют дополнительные возможности в этот язык. Поэтому в настоящее время существует большое количество диалектов SQL.