Структурированный язык запросов SQL основан на реляционном исчислении с переменными кортежами.
Язык SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление данных). Он содержит также некоторые сопутствующие операции. SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т.п. Язык SQL не обладает функциями полноценного языка разработки, а ориентирован на доступ к данным, поэтому его включают в состав средств разработки программ. В этом случае его называют встроенным SQL.
Различают два основных метода использования встроенного SQL: статистический и динамический.
При статистическом использовании языка в тексте программы имеются вызовы функций языка SQL, которые включаются в исполняемы модуль после компиляции.
При динамическом использовании языка предполагается динамическое построение вызовов SQL-функций и интерпретация этих вызовов, например, обращение к данным удаленной базы, в ходе выполнения программы. Динамический метод обычно применяется в тех случаях, когда в приложении заранее неизвестен вид SQL-вызова и он строится в диалоге с пользователем.
|
|
Основным назначением языка SQL (как и других языков для работы БД) является подготовка и выполнение запросов. В результате выборки данных из одной или нескольких таблиц может быть получено множество записей, называемое представлением.
Представление по существу является таблицей, формируемой в результате выполнения запроса. Представление – разновидность хранимого запроса.
Для удобства работы с представлениями в язык SQL введено понятие курсора. Курсор представляет собой своеобразный указатель, используемый для перемещения по наборам записей при их обработке.
Команды SQL разделены на пять категорий: команды DDL, команды DML, команды управления транзакцией, команды управления сеансом и встроенные команды SQL.
Язык определения данных (Data Definition Language – DDL) и язык манипулирования данными (Data Manipulation Language – DML).
Команды управления транзакцией управляют изменениями сделанными командами DML. Они дают возможность пользователю или разработчику предложений группировать изменения в логические единицы работы. Примеры команд управления транзакцией: COMMIT (выполняет фиксацию текущей транзакции и одновременно освобождает), ROLLBACK (выполняет откат текущей транзакции), SAVEPOINT (определяет контрольную точку для транзакции, на которую впоследствии можно сделать откат), ALTER ROLLBACK SEGMENT (предназначен для изменения сегментов отката).
Begin TransAction – инициирует транзакцию.
|
|
End TransAction – завершает транзакцию.
Команды управления сеансом дают возможность пользователям управлять характеристиками текущего сеанса. К ним относятся: включение и выключение ролей, изменение установок используемого языка диалога. Примеры: ALTER SESSION, SET ROLE (позволяет в рамках одного сеанса разрешить или запретить роли, которые были предварительно предоставлены пользователям).
Команды управления системой изменяют характеристики текущего экземпляра ORACLE. Единственной командой управления системой является команда ALTER SYSTEM; она позволяет изменять некоторые установки, например, минимальное число разделяемых серверов, уничтожать какой-либо сеанс и выполнять другие работы.
Встроенные команды SQL применяются совместно с командами DDL, DML и командами управления транзакцией в программах на процедурном языке. Пример: OPEN (открывает курсор проверяя запрос и подставляя хост-переменные, указанные во фразе USING, во фразу WHERE), CLOSE, FETCH (выполняет выборку одной или нескольких строк из результирующего набора, возвращаемого оператором SELECT, назначая для хост-переменных значения из списка выбора.
Операторы языка SQL.
Вид | Название | Назначение |
DDL | CREATE TABLE | Создание таблицы |
DROP TABLE | Удаление таблицы | |
ALTER TABLE | Изменение структуры таблицы | |
CREATE INDEX (в Visual FoxPro Index On) | Создание индекса | |
DROP INDEX | Удаление индекса | |
CREATE VIEW (в Visual FoxPro Create Sql View) | Создание представления | |
DROP VIEW | Удаление представления | |
GRAND | Назначение привилегий | |
REVOKE | Удаление привилегий | |
DML | SELECT | Выборка записей |
UPDATE | Изменение записей | |
INSERT | Вставка новых записей | |
DELETE | Удаление записей |