Консультация по продукту 1cloud

Установка PostgreSQL на Ubuntu 18.04

Инструкция по установке объектно-реляционной СУБД 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. За более подробной информацией по работе с СУБД обращайтесь к документации разработчиков.

 


Средняя оценка: 5,0, всего оценок: 2