 
        
        Основы языка 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-операторы всегда будут обозначаться в лекциях заглавными буквами, а названия полей, таблиц и псевдонимов (алиасов) - строчными.
Перед началом работы с данными должны быть выполнены следующие действия:
- 
разработана модель базы данных и на ее основании создана схема базы данных - все взаимосвязанные таблицы; 
- 
в каждую созданную таблицу должны быть введены данные. 
