CloudLite

8 (495) 784-61-39

Array
(
    [ELEMENT_CODE] => Kak_ustanovit_PostgreSQL_na_Ubuntu_18.04
)

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

КАК УСТАНОВИТЬ 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 позволит удалить строку, в которой тип оборудования имеет значение slide:

DELETE FROM playground WHERE type = '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 (изменяет значение поля цвет, где тип оборудования swing):

UPDATE playground SET color = 'red' WHERE type = 'swing';

Теперь PostgreSQL готово к работе на Вашем сервере Ubuntu 18.04!



Не нашли ответа на Ваш вопрос? Напишите нам!

techsupport@cloudlite.ru - служба техподдержки

sales@cloudlite.ru - вопросы по услугам, оплате, документам и партнерству

partner@cloudlite.ru - партнерская программа