postgresql
Создание таблицы
Поиск…
Создание таблицы с помощью основного ключа
CREATE TABLE person (
person_id BIGINT NOT NULL,
last_name VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
address VARCHAR(255),
city VARCHAR(255),
PRIMARY KEY (person_id)
);
Кроме того, вы можете поместить ограничение PRIMARY KEY
непосредственно в определение столбца:
CREATE TABLE person (
person_id BIGINT NOT NULL PRIMARY KEY,
last_name VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
address VARCHAR(255),
city VARCHAR(255)
);
Рекомендуется использовать имена нижнего регистра для таблицы, а также все столбцы. Если вы используете имена верхнего регистра, такие как Person
вы должны были бы обернуть это имя в двойные кавычки ( "Person"
) в каждом запросе, потому что PostgreSQL обеспечивает свертывание фреймов.
Показать определение таблицы
Откройте инструмент командной строки psql
, подключенный к базе данных, где находится ваша таблица. Затем введите следующую команду:
\d tablename
Чтобы получить расширенный тип информации
\d+ tablename
Если вы забыли имя таблицы, просто введите \ d в psql, чтобы получить список таблиц и представлений в текущей базе данных.
Создать таблицу из выбранного
Допустим, у вас есть таблица, называемая человеком:
CREATE TABLE person (
person_id BIGINT NOT NULL,
last_name VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
age INT NOT NULL,
PRIMARY KEY (person_id)
);
Вы можете создать новую таблицу людей старше 30 лет следующим образом:
CREATE TABLE people_over_30 AS SELECT * FROM person WHERE age > 30;
Создать таблицу с разметкой
Вы можете создавать таблицы с разметкой, чтобы значительно ускорить выполнение таблиц. Незарегистрированный стол пропускает write-ahead
журнала записи, что означает, что он не является аварийным и неспособен реплицироваться.
CREATE UNLOGGED TABLE person (
person_id BIGINT NOT NULL PRIMARY KEY,
last_name VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
address VARCHAR(255),
city VARCHAR(255)
);
Создайте таблицу, которая ссылается на другую таблицу.
В этом примере таблица пользователя будет иметь столбец, который ссылается на таблицу Агентства.
CREATE TABLE agencies ( -- first create the agency table
id SERIAL PRIMARY KEY,
name TEXT NOT NULL
)
CREATE TABLE users (
id SERIAL PRIMARY KEY,
agency_id NOT NULL INTEGER REFERENCES agencies(id) DEFERRABLE INITIALLY DEFERRED -- this is going to references your agency table.
)