Операторы
В SQL используется приблизительно тридцать операторов. Каждый оператор "просит" СУБД выполнить определенное действие, например, прочитать данные, создать таблицу или добавить в таблицу новые данные. Все операторы SQL имеют одинаковую структуру.
Оператор | Описание |
Обработка данных | |
SELECT | Считывает данные из БД |
INSERT | Добавляет новые строки в БД |
DELETE | Удаляет строки из БД |
UPDATE | Обновляет данные, существующие в БД |
Определение данных | |
CREATE TABLE | Создает в БД новую таблицу |
DROP TABLE* | Удаляет таблицу из БД |
ALTER TABLE* | Изменяет структуру существующей таблицы |
CREATE VIEW | Добавляет в БД новое представление |
DROP VIEW* | Удаляет представление из БД |
CREATE INDEX* | Создает индекс для столбца |
DROP INDEX | Удаляет индекс столбца |
CREATE SYNONYM* | Определяет синоним для имени таблицы |
DROP SYNONYM* | Удаляет синоним для имени таблицы |
COMMENT* | Определяет заметки для таблицы или столбца |
LABEL* | Определяет заголовок таблицы или столбца |
Управление доступам | |
GRANT | Предоставляет пользователю право доступа |
REVOKE | Отменяет право доступа |
Управление транзакциями | |
COMMIT | Завершает текущую Транзакцию |
ROLLBACK - | Отменяет текущую транзакцию |
Программный SQL | |
DECLARE | Определяет курсор для запроса |
EXPLAIN* | Описывает план доступа к данным для запроса |
OPEN | Открывает курсор для чтения результатов запроса |
FETCH | Считывает строку из результатов запроса |
CLOSE | Закрывает курсор |
PREPARE* | Подготавливает оператор SQL к динамическому выполнению |
EXECUTET | Динамически выполняет оператор SQL |
DESCRIBE* | Описывает подготовленный запрос |
* He являются частью стандарта ANSI/ISO, но часто встречаются в наиболее распространенных СУБД |
Каждый оператор SQL начинается с глагола, т.е. ключевого слова, описывающего действие, выполняемое оператором. Типичными глаголами являются create (создать), insert (добавить), delete (удалить) и commit (завершить). После глагола идет одно или несколько предложений. Предложение описывает данные, с которыми работает оператор, или содержит уточняющую информацию о действии, выполняемом оператором. Каждое предложение также начинается с ключевого слова, такого как where (где), from (откуда), into (куда) и having (имеющий). Одни предложения в операторе являются обязательным, а другие — нет. Конкретная структура и содержимое предложения могут изменяться. Многие предложения содержат имена таблиц или столбцов; некоторые из них могут содержать дополнительные ключевые слова, константы и выражения.
|
|
В стандарте ANSI/ISO определены ключевые слова, которые применяются в качестве глаголов и в предложениях операторов. В соответствии со стандартом, эти ключевые слова нельзя использовать для именования объектов базы данных, таких как таблицы, столбцы и пользователи. Во многих реализациях SQL этот запрет ослаблен, однако следует избегать использования ключевых слов в качестве имен таблиц и столбцов. В табл. 5.2 перечислены ключевые слова, входящие в стандарт SQLL Стандарт SQL2 расширяет этот список до 300 ключевых слов.
|
|
ADA | CURRENT | GO- | OF | SOME |
ALL | CURSOR | GOTO | ON | SQL |
AND | DEC | GRANT | OPEN | SQLCODE |
ANY | DECIMAL | GROUP | OPTION | SQLERROR |
AS | DECLARE | HAVING | OR | SUM |
ASC | DEFAULT | IN | ORDER | TABLE |
AUTHORIZATION | DELETE | INDICATOR | PASCAL | TO |
AVG | DESC | INSERT | PLI | UNION |
BEGIN | DISTINCT | INT | PRECISION | UNIQUE |
BETWEEN | DOUBLE | INTEGER | PRIMARY | UPDATE |
BY | END | INTO | PRIVILEGES | USER |
С | ESCAPE | IS | PROCEDURE | VALUES |
CHAR | 3SXEC | KEY | PUBLIC | VIEW |
CHARACTER | EXISTS | LANGUAGE | REAL | WHENEVER |
CH&CK | FETCH | LIKE | REFERENCES | WHERE |
CLOSE | FLOAT | MAX | ROLLBACK | WITH |
COBOL | FOR | MIN | SCHEMA | WORK |
COMMIT | FOREIGN | MODULE | SECTION | |
CONTINUE | FORTRAN | NOT | SELECT | |
COUNT | FOUND | NULL | SET. | |
CREATE | FROM | NUMERIC | SMALLINT |
Почти во всех реализациях SQL ключевые слова можно писать как прописными, так и строчными буквами. На практике быстрее набирать весь оператор строчными буквами.
Имена
У каждого объекта в базе данных есть уникальное имя. Имена используются в операторах SQL и указывают, над каким объектом базы данных оператор должен выполнить действие. В стандарте ANSI/ISO определено, что имена имеются у таблиц, столбцов и пользователей. Во многих реализациях SQL поддерживаются также дополнительные именованные объекты, такие как хранимые процедуры, именованные отношения "первичный ключ — внешний ключ" и формы для ввода данных.
В соответствии со стандартом ANSI/ISO,в SQL имена должны содержать от 1 до 18 символов, начинаться с буквы и не содержать пробелы или специальные символы пунктуации. В стандарте SQL2 максимальное число символов в имени увеличено до 128. На практике, однако, в различных СУБД разрешено использование в именах таблиц специальных символов, которые в различных базах данных могут быть разными. Поэтому для повышения переносимости лучше делать имена сравнительно короткими и избегать использования в них специальных символов.
Имена таблиц
Если в операторе указано имя таблицы, SQL предполагает, что происходит обращение к одной из ваших собственных таблиц (т.е. таблиц, которые создали вы). Имея соответствующее разрешение, можно обращаться к таблицам, владельцами которых являются другие пользователи, с помощью полного имени таблицы. Полное имя состоит из имени владельца таблицы и собственно ее имени, разделенных точкой. Например, полное имя таблицы birthdays, владельцем которой является пользователь по имени sam, имеет следующий вид:
SAM.BIRTHDAYS
Полное имя таблицы можно использовать вместо простого имени таблицы во всех операторах SQL.