Действие |
Описание |
CREATE DATABASE |
Создание новой базы данных |
CREATE INDEX |
Создание нового индекса для столбца таблицы |
CREATE SEQUENCE |
Создание новой последовательности в существующей базе данных |
CREATE TABLE |
Создание новой таблицы в существующей базе данных |
CREATE TRIGGER |
Создание нового определения триггера |
CREATE VIEW |
Создание нового представления для существующей таблицы |
SELECT |
Выборка записей из таблицы |
INSERT |
Вставка одной или нескольких новых записей в таблицу |
UPDATE |
Модификация данных в существующих записях |
DELETE |
Удаление существующих записей из таблицы |
DROP DATABASE |
Уничтожение существующей базы данных |
DROP INDEX |
Удаление индекса столбца из существующей таблицы |
DROP SEQUENCE |
Уничтожение существующего генератора последовательности |
DROP TABLE |
Уничтожение существующей таблицы |
DROP TRIGGER |
Уничтожение существующего определения триггера |
DROP VIEW |
Уничтожение существующего представления |
CREATE USER |
Создание в системе новой учетной записи пользователя PostgreSQL |
ALTER USER |
Модификация существующей учетной записи пользователя PostgreSQL |
DROP USER |
Удаление существующей учетной записи пользователя PostgreSQL |
GRANT |
Предоставление прав доступа к объекту базы данных |
REVOKE |
Лишение прав доступа к объекту базы данных |
CREATE FUNCTION |
Создание новой функции SQL в базе данных |
CREATE LANGUAGE |
Создание нового определения языка в базе данных |
CREATE OPERATOR |
Создание нового оператора SQL в базе данных |
CREATE TYPE |
Создание нового типа данных SQL в базе данных |
Несмотря на явное сходство с языками программирования, разработчики поставили целью сделать язык SQL по возможности удобным и наглядным. В результате команды SQL часто напоминают простые предложения на английском языке. В отличие от обычных языков программирования, команды SQL указывают серверу, какие данные требуется найти, но не сообщают, как это должно происходить. В результате хорошо написанный запрос SQL читается почти так же легко, как обычное предложение.
Примечание 2
Примечание 2
В учебниках SQL термины «команда» и «запрос» часто считаются эквивалентными. В этой книге термин «запрос» используется только по отношению к командам, возвращающим данные (например, SELECT), а не к общим командам SQL, которые также могут создавать и модифицировать данные.
Во внутреннем представлении PostgreSQL структурированные команды SQL интерпретируются в виде последовательности лексем, обычно разделяемых пропусками (пробелами или символами новой строки вне парных ограничителей), хотя некоторые лексемы могут следовать без пропусков, если это не вызывает неоднозначной интеопоетапии (например, опепатопы могут стоять вплотную к идеитификаторам). В данном контексте лексемой считается слово или символ, осмысленно идентифицируемый сервером в процессе разбора (интерпретации) команды SQL.
С технической точки зрения каждая лексема может быть ключевым словом, идентификатором, защищенным идентификатором, константой (также встречается термин «литерал») или одним из специальных символов. К категории ключевых слов PostgreSQL относит слова, имеющие заранее определенный смысл в контексте SQL или PostgreSQL — действия, секции, имена функций и некоторые необязательные составляющие команд SQL (как, например, слово WORK в команде COMMIT). Идентификаторы представляют имена переменных для таблиц, столбцов и других объектов баз данных.
Ключевые слова и идентификаторы относятся к внутренним функциям, значениям и записям, смысл которых определяется PostgreSQL С другой стороны, константы описывают данные, интерпретируемые буквально (например, числа или символьные строки).
Наконец, команды SQL могут содержать специальные символы. К этой категории относятся зарезервированные символы (круглые и квадратные скобки, точка с запятой), влияющие на смысл и расположение ключевых слов, идентификаторов и литералов. Специальные символы можно рассматривать как своего рода «знаки препинания» в командах SQL.
Операторы также относятся к категории специальных символов и используются для применения логических или математических операций между данными (литеральными или представленными в виде идентификаторов). Обычно операторы содержат от одного до четырех символов.
В нескольких ближайших подразделах эти базовые компоненты SQL описываются более подробно.