Язык для взаимодействия с БД SQL появился в середине 70-х и был разработан в рамках проекта экспериментальной реляционной СУБД System R. Исходное название языка SEQUEL (Structured English Query Language) только частично отражает суть этого языка. Язык был ориентирован главным образом на удобную и понятную пользователям формулировку запросов к реляционной БД, но на самом деле уже являлся полным языком БД, содержащим помимо операторов формулирования запросов и манипулирования БД средства определения и манипулирования схемой БД; определения ограничений целостности и триггеров; представлений БД; возможности определения структур физического уровня, поддерживающих эффективное выполнение запросов; авторизации доступа к отношениям и их полям; точек сохранения транзакции и откатов.
Язык SQL представляет собой всемирный стандарт на средства работы с данными. Наличие стандарта обеспечивает унификацию программного обеспечения и его независимость от сервера данных и аппаратной платформы. Язык SQL является непроцедурным языком, с помощью которого программист определяет только требуемый результат, не указывая алгоритм его достижения. В связи с этим SQL автономно не используется, обычно он погружён в среду встроенного языка программирования СУБД (FoxPro в СУБД Visual FoxPro, VBA в СУБД Access).
SQL используется при:
· формировании запросов к реляционным БД;
· обновлении БД;
· управлении БД.
С помощью команд языка SQL-сервер можно:
· создавать устройства;
· создавать базы данных и таблицы в них;
· создавать представления и хранимые процедуры;
· редактировать, удалять. добавлять записи в таблицы;
· восстанавливать потерянные данные;
· добавлять группы пользователей;
· управлять доступом к объектам сервера отдельных пользователей и групп.
В современных СУБД с интерактивным интерфейсом можно создавать запросы, используя другие средства, например QBЕ. При формировании QBЕ–запроса в окне конструирования запросов, на заднем плане Access констатирует соответствующий SQL-запрос. А подготовку нового запроса путём редактирования уже имеющегося в ряде случаев проще выполнить путём изменения оператора SQL.
В различных СУБД состав операторов SQL может отличаться.
Язык SQL не обладает функциями полноценного языка разработки, а ориентирован на доступ к данным, поэтому его включают в состав средств разработки программ. В этом случае он называется встроенным SQL. Стандарт языка SQL поддерживают современные реализации языков программирования: Ada, C, Fortran, Pascal и др.
Различают два основных метода использования встроенного SQL: статический и динамический.
q При статическом использовании языка (статический SQL) в тексте программы имеются вызовы функций языка SQL, которые жёстко включаются в выполняемый модуль после компиляции.
q При динамическом использовании языка (динамический SQL) предполагается динамическое построение вызовов SQL-функций и интерпретация этих вызовов (обычно, когда заранее не известен вид SQL-вызова).
Основное назначение языка SQL – подготовка и выполнение запросов. В результате выборки данных может быть получено множество записей, называемое представлением.
Представление по сути – таблица, формируемая в результате выполнения запроса. Описывается путём указания идентификатора представления и запроса, который должен быть выполнен для его получения.
Курсор – понятие, введённое в язык SQL для удобства работы с представлениями. Представляет собой указатель, используемый для перемещения по наборам записей при их обработке.
Описание и использование курсора в языке SQL:
В описательной части программы
- связывание переменной типа курсор (CURSOR) с оператором SQL (обычно с оператором SELECT).