Перейти к основному содержимому

Создание новой таблицы

примечание

Эта страница переведена при помощи нейросети GigaChat.

Создать новую таблицу можно, указав имя таблицы, а также имена всех столбцов и их типы:

CREATE TABLE weather (
city varchar(80),
temp_lo int, -- low temperature
temp_hi int, -- high temperature
prcp real, -- precipitation
date date
);

Ввести это в psql можно с разрывом строки. psql распознает, что команда не завершена до точки с запятой.

Белое пространство (т. е. пробелы, табуляции и новые строки) можно свободно использовать в командах SQL. Это означает, что набрать команду можно, выровненную по другому, чем указано выше, или даже всю в одной строке. Два тире («--») вводят комментарии. Все, что следует за ними, игнорируется до конца строки. SQL не учитывает регистр ключевых слов и идентификаторов, за исключением случаев, когда идентификаторы заключаются в двойные кавычки для сохранения регистра (выше этого не сделано).

varchar(80) определяет тип данных, который может хранить произвольные символьные строки длиной до 80 символов. int – обычный тип целых чисел. real – тип для хранения чисел с плавающей точкой одинарной точности. date не требует пояснений. Да, столбец типа date также называется date. Это может быть удобно или сбивать с толку.

PostgreSQL поддерживает стандартные для SQL типы int, smallint, real, double precision, char(N), varchar(N), date, time, timestamp и interval, а также другие типы общего назначения и богатый набор геометрических типов. PostgreSQL может быть настроен на произвольное количество пользовательских типов данных. Поэтому имена типов не являются ключевыми словами в синтаксисе, за исключением случаев, когда это необходимо для поддержки особых случаев в стандарте SQL.

Во втором примере будут храниться города и связанное с ними географическое положение:

CREATE TABLE cities (
name varchar(80),
location point
);

Тип point – это пример специфического для PostgreSQL типа данных.

Если таблица больше не нужна или требуется создать ее заново, удалите ее следующей командой:

DROP TABLE tablename;