PostgreSQL е една от най-популярните обектно-релационни системи за бази данни. Това е безплатен софтуер с отворен код, който разширява езика SQL с допълнителни функции за справяне със сложните работни натоварвания с данни. Може да работи с различни типове данни, надеждни и сигурни. Научете повече за функциите на PostgreSQL.
В това ръководство ще научим повече за създаването на таблици в схема в PostgreSQL.
Схеми в PostgreSQL
Базата данни на PostgreSQL може да съдържа една или повече наименувани схеми, като всяка схема съдържа таблици.
Едно и също име на обект може да бъде присвоено на множество схеми без конфликт. Например следната схема/дърво на таблица е валидна:
schema_a
маса 1
таблица_2
schema_b
маса 1
таблица_2
Можете да мислите за схеми като директории на ниво операционна система. Разликата е, че не може да има вложени схеми. Научете повече за схемата на Документация на PostgreSQL .
Може да има няколко причини за прилагане на схемите:
Множество потребители използват една и съща база данни, без да са в конфликт помежду си.
По-добра организация и управление на базите данни в логически групи.
Приложенията на трети страни могат да създават своя уникална схема, без да се сблъскват със съществуващите схеми или други обекти.
Таблици в PostgreSQL
Всяка релационна база данни се състои от множество свързани таблици, всяка от които се състои от редове и колони. PostgreSQL идва с няколко вградени таблици, които съдържат различна системна информация. Въпреки това можем също така да създаваме нови таблици под дефинирани от потребителя бази данни и схеми.
Предпоставки:
За да изпълните стъпките, демонстрирани в това ръководство, ще ви трябват следните компоненти:
Правилно конфигурирана Linux система. Научете повече за инсталиране на Ubuntu във VirtualBox .
Правилна инсталация на PostgreSQL. Разгледайте инсталиране на PostgreSQL на Ubuntu .
Достъп до a Потребител на PostgreSQL с Разрешение за ИЗПОЛЗВАНЕ към база данни.
За целите на това ръководство ще използваме postgres за извършване на всички действия в PostgreSQL.
Създаване на таблици в схема
Създаване на демонстрационна база данни
Както бе споменато по-рано, схемите съществуват в база данни. За демонстрационни цели създаваме фиктивна база данни, като избягваме прекъсване на която и да е съществуваща база данни.
Достъп до обвивката на PostgreSQL като postgres :
$ sudo -i -u postgres psql
Създайте нова база данни demo_db:
$ СЪЗДАВАНЕ НА БАЗА ДАННИ demo_db;
Проверете дали базата данни е създадена успешно:
$ \l
Накрая се свържете с новосъздадената база данни:
$ \connect demo_db;
Публичната схема
Всяка нова база данни в PostgreSQL идва със схема по подразбиране – публичен . Ако се опитате да създадете обект, без да посочите името на схемата, публичната схема се избира по подразбиране.
Следната команда отпечатва цялата налична схема в базата данни на PostgreSQL:
$ \dn
Като алтернатива можем да използваме и следната SQL заявка:
$ SELECT * FROM pg_catalog.pg_namespace;
Създаване на нова схема
За да създадете нова схема под конкретна база данни, командната структура е както следва:
$ CREATE SCHEMA ;
Следвайки правилото, нека създадем нова схема demo_schema:
$ CREATE SCHEMA demo_schema;
Проверете списъка със схеми за проверка:
$ \dn
Създаване на таблица в схема
След като вече имаме създадена целевата схема, можем да я попълним с таблици.
Синтаксисът за създаване на таблица е както следва:
CREATE TABLE .
(
... )
Тук:
схема : Това поле указва името на схемата, където е създадена таблицата. Ако не е предоставена стойност, таблицата се създава под публичен схема.
За демонстрация създаваме проста таблица:
CREATE TABLE demo_schema.demo_table (
NAME CHAR(64),
ID INT NOT NULL
);
Тук:
Областта ИМЕ е указано да съхранява низ от 64 знака.
Областта документ за самоличност съдържа целочислените стойности. Терминът „ НЕ НУЛЕВ ” показва това документ за самоличност не може да бъде празно или нула.
Можем да проверим съществуването на таблицата, като използваме следната заявка:
$ ИЗБЕРЕТЕ * ОТ demo_schema.demo_table;
Вмъкване на данни в таблицата
След като таблицата е на място, вече можем да вмъкнем някои стойности:
INSERT INTO demo_schema.demo_table (ИМЕ, ID)
СТОЙНОСТИ
('PQR', 45),
(„IJK“, 99)
;
Проверете съдържанието на таблицата:
$ ИЗБЕРЕТЕ * ОТ demo_schema.demo_table;
Управление на схеми
Разрешения за схема
С помощта на разрешение за схема можем да управляваме каква роля може да изпълнява какво действие върху конкретна схема. От всички възможни привилегии схемите поддържат само СЪЗДАВАНЕ и ИЗПОЛЗВАНЕ.
За да актуализирате разрешението на схемата за определена роля, командната структура е следната:
$ GRANT ON SCHEMA TO ;
За да отмените разрешението на схемата за определена роля, командната структура е следната:
$ REVOKE ON SCHEMA TO ;
Проверете промяната, като използвате следната команда:
$ \dn+
Промяна на свойствата на схемата
С помощта на ПРОМЯНА НА СХЕМАТА можем да модифицираме различните свойства на дадена схема. Например: собственост, име на схема и др.
За да промените името на схемата, използвайте следната заявка:
$ ALTER SCHEMA RENAME TO ;
За да промените собствеността върху схема, използвайте следната заявка:
$ ALTER SCHEMA OWNER TO ;
Имайте предвид, че за да промените собствеността, текущият потребител трябва да има СЪЗДАВАЙТЕ разрешение за схемата.
Изтриване на схема
Ако дадена схема вече не е необходима, можем да я изтрием с помощта на ИЗПУСКАЙТЕ запитване:
$ DROP SCHEMA <име_на_схема>
Ако схемата съдържа някакъв обект, имаме нужда от КАСКАДА модификатор:
$ DROP SCHEMA CASCADE;
Управление на таблици
Разрешения за таблица
Подобно на схемата, всяка таблица също идва с управление на разрешения, определящо какво действие може да извърши дадена роля върху таблицата.
За да проверите разрешенията на таблица, използвайте следната команда в psql:
$ \dp <име_на_таблица>
Промяна на свойствата на таблицата
С помощта на АЛТЕР ТАБЛИЦА можем да модифицираме многобройните аспекти на вече съществуваща таблица.
Например, за да премахнете колона, заявката изглежда така:
$ ALTER TABLE <име_на_таблица> DROP COLUMN <колона>;
За да добавим нова колона, можем да използваме следната заявка:
$ ALTER TABLE <име_на_таблица> ADD COLUMN <колона> <тип_данни>;
Можем също да зададем компресията за конкретна колона:
$ ALTER COLUMN <име_на_колона> SET COMPRESSION <метод_на_компресия>;
Изтриване на таблица
За да изтрием таблица от схема, можем да използваме ПАДВАЩА МАСА запитване:
$ DROP TABLE <име_на_таблица>;
Имайте предвид, че за разлика от схемите, ПАДВАЩА МАСА заявката няма да доведе до грешка, независимо дали таблицата е празна или не.
Заключение
В това ръководство демонстрирахме как се създават таблици в схема в PostgreSQL. Създадохме фиктивна схема в рамките на фиктивна база данни и създадохме таблица в рамките на схемата. Това ръководство също демонстрира как да управлявате различните свойства на схеми и таблици.
За по-добра цялост на данните можете да конфигурирате a логическа репликация на PostgreSQL . За да поддържате PostgreSQL базата данни в добро състояние, можете да конфигурирате автовакуум за почистване на мъртвите кортежи, които са останали от изтритите записи.
За повече ръководства за PostgreSQL вижте Подкатегория PostgreSQL .