Команды SQL
Любая концептуальная информация о реляционных базах данных и таблицах приносит пользу лишь в том случае, если вы знаете, как организовать взаимодействие с данными. Язык SQL состоит из структурированных команд, предназначенных для добавления, модификации и удаления данных из базы. Эти команды образуют основу для взаимодействия с сервером PostgreSQL.
Этот раздел посвящен "анатомии" команд SQL. В нем рассматриваются структурные компоненты команд, описываются функции каждого компонента и их взаимные связи. Стандартный клиент командной строки PostgreSQL, psql, выводит результаты выполнения команд в приведенных примерах.
Большинство примеров команд SQL относится к базе данных booktown. Весь вывод psql снабжается префиксом вида booktown=#.
В некоторых примерах используется тестовая база данных testdb. По умолчанию в приглашении psql выводится только имя базы данных и символы =#, означающие, что система готова к вводу новой команды (хотя вы увидите, что символ = динамически изменяется по мере отслеживания состояния входных данных SQL). В книге это приглашение приводится вместе с входными и выходными данными SQL, чтобы вам было проще освоиться с выводом клиента psql.
Клиент psql подробно описан в главе 4. Здесь он упоминается лишь для пояснения стиля примеров команд SQL.
Примечание
Схема базы данных booktown (вместе с примерами записей) находится в файле booktown.sql на компакт-диске. Чтобы установить эту базу данных, введите в приглашении командной строки команду psql – U postgres template! – f /mnt/cdrom/booktown.sql, где /mnt/cdrom – путь к смонтированному компакт-диску, a postgres – имя суперпользователя PostgreSQL.
Анатомия команд SQL
Команды SQL всегда начинаются с действия (verb) – слова или группы слов, описывающих выполняемую операцию. Кроме того, команда SQL обычно содержит одну или несколько секций, уточняющих ее смысл. В табл. 3.2 перечислены основные действия SQL.
Таблица 3.2. Основные действия PostgreSQL.
| Действие | Описание |
|---|---|
| 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 в базе данных |
