PostgreSQL - СОЗДАТЬ таблицу

Оператор 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

Приведенный выше оператор PostgreSQL даст следующий результат:

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)