PostgreSQL - Создание таблицы
Команда CREATE TABLE используется для создания новой таблицы в любой базе данных.
Синтаксис
Базовый синтаксис CREATE TABLE выглядит следующим образом:
CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) );
CREATE TABLE – это ключевое слово, говорящее системе баз данных о том, что необходимо создать новую таблицу. Уникальное имя или идентификатор таблицы следует за оператором CREATE TABLE. Изначально пустая таблица в текущей базе данных принадлежит пользователю, выполнившему команду.
Затем в скобках идет список, определяющий каждый столбец в таблице и его тип данных. Синтаксис станет понятен из примеров, приведенных ниже.
Примеры
Ниже приведен пример, в котором создается таблица COMPANY, а NOT NULL — это ограничения, показывающие, что эти поля не могут быть NULL при создании записей в этой таблице:
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
Давайте создадим еще одну таблицу, которую мы будем использовать в наших упражнениях в следующих разделах:
CREATE TABLE DEPARTMENT( ID INT PRIMARY KEY NOT NULL, DEPT CHAR(50) NOT NULL, EMP_ID INT NOT NULL );
Вы можете проверить, была ли Ваша таблица создана, используя команду \d, которая будет использоваться для вывода списка всех таблиц в подключенной базе данных.
testdb-# \d
Приведенный выше оператор PostgreSQL выдаст следующий результат:
List of relations Schema | Name | Type | Owner --------+------------+-------+---------- public | company | table | postgres public | department | table | postgres (2 rows)
Для описания каждой таблицы используйте \d tablename:
testdb-# \d company
Результат будет следующим:
Table "public.company" Column | Type | Modifiers -----------+---------------+----------- id | integer | not null name | text | not null age | integer | not null address | character(50) | salary | real | join_date | date | Indexes: "company_pkey" PRIMARY KEY, btree (id)