Использование таблиц
Таблицы являются основными блоками хранения данных в базе. Перед любыми операциями создания, выборки или модификации записей необходимо сначала создать таблицу, в которой эти записи будут храниться.
В этом разделе рассматриваются процедуры создания, модификации и удаления таблиц командами CREATE TABLE, ALTER TABLE и DROP TABLE SQL (вопросам создания баз данных посвящена глава 9).
Создание таблицы командой CREATE TABLE
В языке SQL таблицы создаются командой CREATE TABLE. Минимальный набор параметров включает имя таблицы и описания полей, состоящие из имени поля и типа данных. Команде CREATE TABLE также могут передаваться некоторые необязательные параметры: ограничения полей (правила, которые определяют, какие данные могут или не могут присутствовать в поле) и ограничения таблицы (общие ограничения и связи, определенные для самой таблицы).
Синтаксис команды CREATE TABLE
Синтаксис команды CREATE TABLE выглядит так:
CREATE [ TEMPORARY | TEMP ] TABLE имя_таблицы ( { имя_поля тип [ограничение_поля [… ] ] | ограничение_таблицы } […Т ]) [ INHERITS (базовая_таблица […])]
Ниже поясняется смысл компонентов команды.
- TEMPORARY | TEMP. Таблица, созданная с ключевым словом TEMPORARY или TEMP, автоматически уничтожается в конце текущего сеанса. Имя временной таблицы может совпадать с именем существующей таблицы; в этом случае все ссылки на таблицу с этим именем будут относиться к временной таблице (до момента ее уничтожения). Все индексы таблицы также являются временными и уничтожаются в конце сеанса.
- Имя_таблицы. Имя для ссылок на таблицу после ее создания.
- Имя_поля тип [ограничение _поля ] | ограничение таблицы}. После имени таблицы в круглых скобках перечисляются определения полей таблицы, разделенные запятыми. Определение поля состоит из имени, которое представляет собой синтаксически правильный идентификатор допустимого типа, а также необязательного ограничения. Ограничения полей описаны в подразделе "Ограничения в таблицах" раздела "Нетривиальное использование таблиц" главы 7. Ограничения полей и таблицы могут чередоваться, хотя на практике обычно сначала перечисляются ограничения полей, а затем следуют ограничения таблицы.
- [….]. После определения поля может следовать запятая, за которой указано новое определение. Многоточие означает произвольное количество определений полей (вплоть до максимального значения 1600). Помните, что за последним элементом списка не может следовать запятая, как разрешено в языках типа Perl; это приведет к ошибке лексического разбора.
- INHERITS (базовая _таблица [….]). Объектные возможности PostgreSQL позволяют задать одну или несколько таблиц (в виде списка, разделенного запятыми), базовых по отношению к создаваемой (производной) таблице. При наличии этого необязательного элемента объявления между таблицами устанавливается связь типа "предок-потомок". Механизм наследования является относительно новой возможностью РСУБД и подробно описывается в подразделе "Наследование" раздела "Нетривиальное использование таблиц" главы 7.
Примечание
Параметры ограничение_поля и ограничение_таблицы в приведенном выше объявлении могут соответствовать достаточно сложным синтаксическим конструкциям. Синтаксис различных ограничений подробно описан в подразделе "Ограничения в таблицах" раздела "Нетривиальное использование таблиц" главы 7.