Основы языка sql Формы языка sql
Структурированный язык запросов SQL реализуется в следующих формах:
-
интерактивный SQL;
-
статический SQL;
-
динамический SQL;
-
встроенный SQL.
Интерактивный SQL позволяет конечному пользователю в интерактивном режиме выполнять SQL-операторы. Все СУБД предоставляют инструментальные средства для работы с базой данных в интерактивном режиме. Например, СУБД Oracle включает утилиту SQL*Plus, позволяющую в строчном режиме выполнять большинство SQL-операторов.
Статический SQL может реализовываться как встроенный SQL или модульный SQL. Операторы статического SQL определены уже в момент компиляции программы.
Динамический SQL позволяет формировать операторы SQL во время выполнения программы.
Встроенный SQL позволяет включать операторы SQL в код программы на другом языке программирования (например, С++).
Группы операторов sql
Язык SQL определяет:
-
операторы языка, называемые иногда командами языка SQL;
-
типы данных;
-
набор встроенных функций.
По своему логическому назначению операторы языка SQL часто разбиваются на следующие группы:
-
язык определения данных DDL (Data Definition Language);
-
язык манипулирования данными DML (Data Manipulation Language).
Язык определения данных включает операторы, управляющие объектами базы данных. К последним относятся таблицы, индексы, представления. Для каждой конкретной базы данных существует свой набор объектов базы данных, который может значительно расширять набор объектов, предусмотренный стандартом. В некоторых СУБД, таких как Oracle, все объекты базы данных, принадлежащие одному пользователю, образуют схему базы данных. С другой стороны, в стандарте SQL92 термином "схема" стали называть группу взаимосвязанных таблиц.
Язык манипулирования данными включает операторы, управляющие содержанием таблиц базы данных и извлекающими информацию из этих таблиц.
Язык DML определяет следующие операторы:
-
SELECT - извлечение данных из одной или нескольких таблиц;
-
INSERT - добавление строк в таблицу;
-
DELETE - удаление строк из таблицы;
-
UPDATE - изменение значений полей в таблице.
Фазы выполнения sql-оператора
SELECT A,B,C, FROM X,Y WHERE A<500 AND C='ASF' |
|
parse |
Синтаксический разбор оператора |
validate |
Проверка привилегий пользователя,проверка действительности имен системных каталогов, таблиц и названий полей |
access plan |
Генерация плана доступа к ресурсам. План доступа - это двоичное представление выполнимого кода по отношению к данным, сохраняемым в БД |
optimize |
Оптимизация плана доступа. Для увеличения скорости поиска данных могут применяться индексы. Оптимизация использования взаимосвязанных таблиц |
execute |
Выполнение оператора |
Подключение к субд
Перед тем как перейти к более подробному изучению операторов языка SQL, рассмотрим возможный сценарий работы пользователя с СУБД.
Первым шагом в любом случае следует выполнить подключение к СУБД. Например, CONNECT TO MyDB1 USER User1/Password1;.
Фраза TO специфицирует источник данных, с которым устанавливается соединения. Фраза USER определяет имя и пароль пользователя, который будет работать с базой данных.
Операторы и функции языка SQL не чувствительны к регистру, в отличие от строковых значений. Однако, как и в стандарте языка, SQL-операторы всегда будут обозначаться в лекциях заглавными буквами, а названия полей, таблиц и псевдонимов (алиасов) - строчными.
Перед началом работы с данными должны быть выполнены следующие действия:
-
разработана модель базы данных и на ее основании создана схема базы данных - все взаимосвязанные таблицы;
-
в каждую созданную таблицу должны быть введены данные.