Команды 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 в базе данных |