Операторы SQL
Операторы SQL
Оператор SQL используется для выполнения запроса к базе данных. Язык запросов выражается в операторах, которые задают цель: что должно быть сделано (операция), объекты, с которыми это должно быть сделано, и детализация, как это должно быть сделано. По теории каждое возможное взаимодействие между внешним миром и базой данных осуществляется через синтаксис оператора.
Синтаксические конструкции операторов группируются в соответствии с двумя основными целями.
* Операторы CREATE, ALTER и DROP над объектами метаданных (также называемые объектами схемы или элементами схемы). Язык таких запросов называется языком определения данных (Data Definition Language, DDL).
* Операторы, выполняющие действия над данными. Они представляют язык для определения наборов данных в виде столбцов и строк и задают операции для:
• поиска и преобразования (SELECT) образов таких наборов данных из хранилища данных для чтения приложениями;
• изменения состояния базы данных путем добавления, изменения и удаления указанных наборов (операторы INSERT, UPDATE и DELETE).
Такие операторы, которые выполняют действия над данными, относятся к языку, называемому языком манипулирования данными (Data Manipulation Language, DML).
Реализация в Firebird языка SQL разбивается на несколько пересекающихся подмножеств, каждое из которых используется для специальных целей и включает свои собственные языковые расширения.
* Встраиваемый SQL (Embedded SQL, ESQL) - это "базовая" реализация SQL, состоящая из синтаксиса DDL и DML, которые включаются и в другие подмножества, где это возможно. Это было первоначальной реализацией SQL в предшественнике InterBase, разработанной для включения в клиентские приложения и требующей препроцессора GPRE.
* Динамический SQL (Dynamic SQL, DSQL) - это подмножество наиболее часто используется сегодня. Оно используется во всех программах интерфейса с базой
- данных, которые общаются с сервером через интерфейс прикладного программирования (Application Programming Interface, API). Некоторые команды DDL, доступные в ESQL, которые не могут быть реализованы в DSQL, заменяются вызовами функций API.
* Интерактивный SQL (Interactive SQL, ISQL)- это язык, реализованный в утилите командной строки isql. Он основан на DSQL с расширениями просмотра метаданных и некоторой системной статистики, а также для управления сессиями isql.
* Процедурный SQL (Procedural SQL, PSQL) - это язык для написания хранимых процедур и триггеров. Он состоит из всех операторов DML с добавлением множества процедурных расширений.
Язык определения данных (DDL)
При определении метаданных для использования в базе данных Firebird мы используем лексикон операторов и параметров стандартов SQL для создания объекта с его типом и именем - или идентификатором, - а также для задания и изменения его атрибутов. В этом лексиконе также присутствуют операторы для удаления объектов.
Запросы с использованием DDL зарезервированы для целей определения метаданных, следовательно:
* аккуратно управляйте ими, если вы реализуете их использование в приложениях конечного пользователя;
* ожидайте ошибок при компиляции, если вы собираетесь их использовать в хранимых процедурах.
Язык DDL в Firebird описан в частях III и IV. Определение просмотров, предоставление и отмена привилегий SQL также относятся к DDL. Просмотры, которые объединяют операторы DDL и DML, обсуждаются в главе 24. Определение и поддержка разрешений SQL описывается в главе 35.