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)