PostgreSQL — одна из самых популярных систем объектно-реляционных баз данных. Это бесплатное программное обеспечение с открытым исходным кодом, которое расширяет язык SQL дополнительными функциями для обработки сложных рабочих нагрузок данных. Он может работать с различными типами данных, надежен и безопасен. Узнайте больше о возможностях PostgreSQL.
В этом руководстве мы узнаем больше о создании таблиц в схеме в PostgreSQL.
Схемы в PostgreSQL
База данных PostgreSQL может содержать одну или несколько именованных схем, каждая из которых содержит таблицы.
Одно и то же имя объекта может быть присвоено нескольким схемам без конфликтов. Например, допустимо следующее дерево схемы/таблицы:
схема_а
Таблица 1
Таблица 2
схема_b
Таблица 1
Таблица 2
Вы можете думать о схемах как о каталогах на уровне операционной системы. Разница в том, что не может быть вложенных схем. Узнайте больше о схеме на Документация по PostgreSQL .
Причин для реализации схем может быть несколько:
Несколько пользователей, использующих одну и ту же базу данных, не конфликтуют друг с другом.
Лучшая организация и управление базами данных в логические группы.
Сторонние приложения могут создавать свои уникальные схемы, не конфликтуя с существующими схемами или другими объектами.
Таблицы в PostgreSQL
Любая реляционная база данных состоит из нескольких связанных таблиц, каждая из которых состоит из строк и столбцов. PostgreSQL поставляется с несколькими встроенными таблицами, содержащими различную системную информацию. Однако мы также можем создавать новые таблицы в пользовательских базах данных и схемах.
Предпосылки:
Для выполнения шагов, показанных в этом руководстве, вам потребуются следующие компоненты:
Правильно настроенная система Linux. Узнать больше о установка Ubuntu в VirtualBox .
Правильная установка PostgreSQL. Проверить установка PostgreSQL на Ubuntu .
Доступ к Пользователь PostgreSQL с ИСПОЛЬЗОВАНИЕ разрешение в базу данных.
Для целей этого руководства мы будем использовать постгрес для выполнения всех действий в PostgreSQL.
Создание таблиц в схеме
Создание демонстрационной базы данных
Как упоминалось ранее, схемы существуют в базе данных. В демонстрационных целях мы создаем фиктивную базу данных, избегая нарушения работы любой существующей базы данных.
Получите доступ к оболочке PostgreSQL как постгрес :
$ sudo -i -u postgres psql
Создать новую базу данных демо_дб:
$ СОЗДАТЬ БАЗУ ДАННЫХ demo_db;
Убедитесь, что база данных создана успешно:
$ \л
Наконец, подключитесь к только что созданной базе данных:
$ \подключить demo_db;
Публичная схема
Любая новая база данных в PostgreSQL поставляется со схемой по умолчанию — общественный . Если вы попытаетесь создать объект без указания имени схемы, по умолчанию будет выбрана общедоступная схема.
Следующая команда выводит всю доступную схему в базе данных PostgreSQL:
$\дн
В качестве альтернативы мы также можем использовать следующий SQL-запрос:
$ SELECT * FROM pg_catalog.pg_namespace;
Создание новой схемы
Чтобы создать новую схему в конкретной базе данных, структура команды выглядит следующим образом:
$ СОЗДАТЬ СХЕМУ <имя_схемы>;
Следуя правилу, создадим новую схему demo_schema:
$ СОЗДАТЬ СХЕМУ demo_schema;
Проверьте список схем для проверки:
$\дн
Создание таблицы в схеме
Теперь, когда у нас создана целевая схема, мы можем заполнить ее таблицами.
Синтаксис создания таблицы следующий:
CREATE TABLE <схема>.
(
... )
Здесь:
схема : В этом поле указывается имя схемы, в которой создается таблица. Если значение не указано, таблица создается в общественный схема.
Для демонстрации создадим простую таблицу:
СОЗДАТЬ ТАБЛИЦУ demo_schema.demo_table (
ИМЯ СИМВОЛ(64),
ID INT НЕ NULL
);
Здесь:
Поле ИМЯ указывается для хранения строки из 64 символов.
Поле Я БЫ содержит целые значения. Термин ' НЕНУЛЕВОЙ ' указывает на то, что Я БЫ не может быть пустым или нулевым.
Мы можем проверить существование таблицы, используя следующий запрос:
$ SELECT * FROM demo_schema.demo_table;
Вставка данных в таблицу
Теперь, когда таблица на месте, мы можем вставить некоторые значения:
ВСТАВЬТЕ В demo_schema.demo_table (ИМЯ, ID)
ЦЕННОСТИ
('PQR', 45),
(«ИЖК», 99)
;
Проверьте содержимое таблицы:
$ SELECT * FROM demo_schema.demo_table;
Управление схемой
Разрешения схемы
С помощью разрешения схемы мы можем управлять тем, какая роль может выполнять какое действие в конкретной схеме. Из всех возможных привилегий схемы поддерживают только СОЗДАВАЙТЕ и ИСПОЛЬЗУЙТЕ.
Чтобы обновить разрешение схемы для конкретной роли, структура команды выглядит следующим образом:
$ GRANT <разрешение> ON SCHEMA <имя_схемы> TO <роль>;
Чтобы отозвать разрешение схемы для определенной роли, структура команды выглядит следующим образом:
$ REVOKE ON SCHEMA TO ;
Проверьте изменение с помощью следующей команды:
$ \дн+
Изменить свойства схемы
С помощью ИЗМЕНИТЬ СХЕМУ заявление, мы можем изменить различные свойства схемы. Например: право собственности, имя схемы и т. д.
Чтобы изменить имя схемы, используйте следующий запрос:
$ ALTER SCHEMA <имя_схемы> ПЕРЕИМЕНОВАТЬ В <имя_новой_схемы>;
Чтобы изменить владельца схемы, используйте следующий запрос:
$ ALTER SCHEMA <имя_схемы> ВЛАДЕЛЕЦ <роли>;
Обратите внимание, что для смены владельца текущий пользователь должен иметь СОЗДАЙТЕ разрешение на схему.
Удаление схемы
Если схема больше не нужна, мы можем удалить ее с помощью УРОНИТЬ запрос:
$ УДАЛИТЬ СХЕМУ <имя_схемы>
Если схема содержит какой-либо объект, нам потребуется КАСКАД модификатор:
$ DROP SCHEMA <имя_схемы> CASCADE;
Управление таблицами
Разрешения для таблиц
Как и схема, каждая таблица также имеет управление разрешениями, определяющее, какое действие роль может выполнять над таблицей.
Чтобы проверить права доступа к таблице, используйте следующую команду в psql:
$ \dp <имя_таблицы>
Изменить свойства таблицы
С помощью ИЗМЕНИТЬ ТАБЛИЦУ заявление, мы можем изменить многочисленные аспекты уже существующей таблицы.
Например, чтобы удалить столбец, запрос выглядит так:
$ ALTER TABLE
DROP COLUMN ;
Чтобы добавить новый столбец, мы можем использовать следующий запрос:
$ ALTER TABLE
ADD COLUMN ;
Мы также можем установить сжатие для определенного столбца:
$ ALTER COLUMN SET COMPRESSION ;
Удаление таблицы
Чтобы удалить таблицу из схемы, мы можем использовать УДАЛИТЬ ТАБЛИЦУ запрос:
$ DROP TABLE <имя_таблицы>;
Обратите внимание, что в отличие от схем, УДАЛИТЬ ТАБЛИЦУ запрос не выдаст ошибку независимо от того, пуста таблица или нет.
Вывод
В этом руководстве мы продемонстрировали, как создавать таблицы в схеме в PostgreSQL. Мы создали фиктивную схему в фиктивной базе данных и создали таблицу в этой схеме. В этом руководстве также показано, как управлять различными свойствами схем и таблиц.
Для лучшей целостности данных вы можете настроить логическая репликация PostgreSQL . Чтобы поддерживать работоспособность базы данных PostgreSQL, вы можете настроить автовакуум для очистки мертвых кортежей, оставленных удаленными записями.
Дополнительные руководства по PostgreSQL см. Подкатегория PostgreSQL .