PostgreSQL Схема
Схему PostgreSQL можно рассматривать как совокупность таблиц.
Схема может содержать представления, индексы, типы данных, функции, операторы и т. д.
Одно и то же имя объекта можно использовать в разных схемах без конфликтов; например, schema1 и myschema могут обе содержать таблицу с именем mytable.
Преимущества использования схем:
Позволяет нескольким пользователям использовать одну базу данных, не мешая друг другу.
Организует объекты базы данных в логические группы, чтобы упростить управление ими.
Объекты сторонних приложений можно размещать в отдельных схемах, чтобы они не конфликтовали с именами других объектов.
Синтаксис
Мы можем использовать инструкциюCREATE SCHEMA для создания схемы, синтаксис следующий:
CREATE SCHEMA myschema ( ... );
Приведённая выше инструкция создаст схему с именем myschema.
Схемы обычно используются для организации и изоляции объектов базы данных, предотвращая конфликты имён объектов.
Чтобы создать таблицу, используйте инструкцию CREATE TABLE:
CREATE TABLE myschema.mytable (
column1 datatype1,
column2 datatype2,
...
);Приведённая выше инструкция создаст таблицу с именем mytable в схеме myschema и определит ряд столбцов и их типы данных.
Обратите внимание, что datatype1, datatype2 и т. д. выше следует заменить на фактические типы данных, например integer, varchar(255) и т. д.
Примеры
Далее мы подключаемся к exampledb, чтобы создать схему myschema:
exampledb=# create schema myschema; CREATE SCHEMA
Выходной результат "CREATE SCHEMA" указывает на то, что схема была успешно создана.
Далее мы создаём другую таблицу:
exampledb=# create table myschema.company( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
Приведённая выше команда создаёт пустую таблицу. Мы используем следующий SQL, чтобы проверить, была ли создана таблица:
exampledb=# select * from myschema.company; id | name | age | address | salary ----+------+-----+---------+-------- (0 rows)
Удаление схемы
Удаление пустой схемы (все объекты в ней уже удалены):
DROP SCHEMA myschema;
Удаление схемы вместе со всеми содержащимися в ней объектами:
DROP SCHEMA myschema CASCADE;Другие расширения