Инструкция по установке объектно-реляционной СУБД PostgreSQL на виртуальный сервер под управлением Ubuntu 18.04.
Что это такое?
PostgreSQL - реляционная СУБД, с дополнительным набором объектно-ориентированных функций. Postgres предлагает существенную дополнительную мощность за счет включения следующих четырех дополнительных базовых концепций, благодаря которым пользователи могут легко расширить систему: классы, наследование, типы, функции. Дополнительные функции обеспечивают гибкость: ограничения, триггеры, правила, целостность транзакций.
Роль в Postgres это учетная запись для авторизации, в ней неразличимы группы и пользователи.
Установка и подключение
Для установки необходимо обновить локальную базу пакетов:
sudo apt update
sudo apt upgrade
Установите PostgreSQL:
sudo apt install postgresql postgresql-contrib
После установки у вас появится пользователь postgres, добавьте его в группу sudo:
usermod -a -G sudo postgres
Установите пароль пользователю:
passwd postgres
Подключитесь от имени пользователя postgres:
sudo -i -u postgres
Для подключения к СУБД PostgreSQL, наберите:
psql
Для выхода используйте команду:
\q
Создание новой роли
На текущий момент в системе есть только роль postgres для подключения к СУБД. Для создания роли используйте следующую команду:
sudo -u postgres createuser --interactive
Необходимо задать следующие параметры - имя пользователя, привилегии суперпользователя, возможность создания БД, возможность создания ролей:
Enter name of role to add: cloud
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
Создание новой базы данных
Если вы работаете в системе как пользователь postgres, введите следующую команду:
createdb <имя_БД>
Например:
createdb cloudBase
Если вы подключены к другой учетной записи, введите:
sudo -u postgres createdb <имя_БД>
Например:
sudo -u postgres createdb cloudBase
Открытие приглашения Postgres с новой ролью
Создайте одноименного с ролью пользователя Ubuntu, введя информацию:
sudo adduser <имя_роли>
Например:
sudo adduser cloud
Пример системных сообщений:
Adding user `cloud' ... Adding new group `cloud' (1001) ... Adding new user `cloud' (1001) with group `cloud' ... Creating home directory `/home/cloud' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for cloud Enter the new value, or press ENTER for the default Full Name []: Ivan Room Number []: 100 Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y
Для подключения используйте следующую команду:
sudo -u <роль> psql <имя_БД>
Например:
sudo -u cloud psql cloudBase
Создание и удаление таблиц
В общем случае команда для создания таблицы PostgreSQL выглядит следующим образом:
CREATE TABLE table_name (
column_name1 col_type (field_length) column_constraints,
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);
Для проверки сформируйте таблицу:
CREATE TABLE playground (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
install_date date
);
Эта команда создает таблицу описи игрового оборудования. Первый столбец - идентификатор оборудования, которое имеет тип serial. Этот тип данных является счетчиком. Также в этом столбце ограничение первичного ключа, которое задает условия для значений - уникальность и наличие значения.
Следующие две строки создают столбцы для типа оборудования и его цвета соответственно, каждый из которых не может быть пустым. После этого следует строка создания столбца местоположения с ограничением, на возможное значение. Последняя команда создает столбец даты, в который будет записана дата, когда вы установили оборудование.
Для двух столбцов, equip_id и install_date, не определена длина поля, так как некоторые типы данных не требуют жесткого указания длины, поскольку она подразумевается типом.
Для просмотра таблицы введите:
\d
Результат:
List of relations Schema | Name | Type | Owner --------+-------------------------+----------+------- public | playground | table | cloud public | playground_equip_id_seq | sequence | cloud (2 rows)
Добавление, выбор и удаление данных из таблицы
В качестве примера добавьте тестовые данные в созданную таблицу:
INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2017-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2018-08-16');
Для просмотра содержимого всей таблицы используйте команду:
SELECT * FROM playground;
Результат:
equip_id | type | color | location | install_date ----------+-------+--------+-----------+-------------- 1 | slide | blue | south | 2017-04-28 2 | swing | yellow | northwest | 2018-08-16 (2 rows)
Удалить строку можно с помощью ключевого слова DELETE:
DELETE FROM playground WHERE type = 'slide';
Указанная команда удалит строку, в которой тип оборудования имеет значение slide.
Удаление и добавление столбцов таблицы
Для добавления столбца используйте следующую команду:
ALTER TABLE playground ADD last_maint date;
В результате таблица будет выглядеть следующим образом:
equip_id | type | color | location | install_date | last_maint ----------+-------+--------+-----------+--------------+------------ 2 | swing | yellow | northwest | 2018-08-16 |
Чтобы удалить столбец используйте команду:
ALTER TABLE playground DROP last_maint;
Обновление данных в таблице
Для обновление существующих записей используйте ключевое слово UPDATE:
UPDATE playground SET color = 'red' WHERE type = 'swing';
Данная команда изменяет значение поля цвет, где тип оборудования swing.
Теперь вы можете работать с PostgreSQL на своем сервере Ubuntu 18.04. За более подробной информацией по работе с СУБД обращайтесь к документации разработчиков.