Введение
PostgreSQL или Postgres — это система управления реляционными базами данных. Его преимущество заключается в том, что он соответствует стандартам и имеет множество дополнительных функций.
В этом руководстве мы объясним, как установить Postgres на VPS с Debian 9 Stretch.
Установить PostgreSQL
Вы можете установить PostgresSQL, используя официальный репозиторий Debian с помощью apt.
Обновите список пакетов:
sudo apt update
Установить PostgreSQL
sudo apt install postgresql postgresql-contrib
Используйте PostgreSQL
По умолчанию Postgres использует концепцию, называемую « ролями », для обработки аутентификации и авторизации, аналогичную обычным учетным записям в стиле Unix.
При установке Postgres настроен на использование идентификационной аутентификации, что означает, что он сопоставляет роли Postgres с соответствующим пользователем системы Linux. Если в Postgres существует роль с тем же именем, что и у пользователя Linux, они смогут войти в систему под этой ролью.
Процедура установки создала учетную запись пользователя с именем postgres, связанную с ролью Postgres по умолчанию.
Для использования этой учетной записи и доступа к postgres существует несколько процедур.
Чтобы войти в систему с пользователем postgres, из терминала:
sudo -i -u postgres
Затем, чтобы получить доступ к приглашению Postgres и управлять базой данных, введите;
psql
Чтобы выйти из командной строки Postgres, введите:
\q
Создать новую роль
В настоящее время в базе данных настроена только роль postgres. Вы можете создавать новые роли из командной строки с помощью команды « Создать их ». Параметр --interactive спросит у вас имя новой роли и следует ли включить права суперпользователя.
Если у вас все еще активна подсказка postgres, введите:
\q
Если вы вошли в систему с учетной записью postgres, вы можете создать нового пользователя с помощью следующей команды:
createuser --interactive
Если вы вошли в систему с другой учетной записью, еще не связанной с postgres, используйте следующую команду:
sudo -u postgres createuser --interactive
Вам будет предложено ввести имя для новой роли и назначить ей права суперпользователя.
Enter name of role to add: noviello
Shall the new role be a superuser? (y/n) y
Создать новую базу данных
Система аутентификации Postgres по умолчанию связывает роль с одноименной базой данных.
Поэтому, если ранее созданный пользователь называется noviello, эта роль попытается подключиться к базе данных, которая по умолчанию также называется noviello. Вы можете создать соответствующую базу данных с помощью команды createdb.
Если вы вошли в систему с учетной записью postgres, вы можете создать новую базу данных с помощью следующей команды:
createdb noviello
Если вы вошли в систему с другой учетной записью, еще не связанной с postgres, используйте следующую команду:
sudo -u postgres createdb noviello
Чтобы получить доступ к приглашению Postgres с только что созданной новой ролью, должен существовать пользователь Linux, в данном случае на Debian, с тем же именем, которое присвоено роли и базе данных.
Если пользователя с таким именем нет, вы можете создать его с помощью команды adduser.
Выполните эту процедуру с учетной записью пользователя, отличной от postgres.
Чтобы создать нового пользователя:
sudo adduser noviello
Теперь мы можем подключиться с новым пользователем к базе данных и использовать приглашение postgres:
sudo -i -u noviello
psql
Чтобы подключиться к другой базе данных с текущим пользователем:
psql -d postgres
Чтобы получить информацию о текущем соединении:
\conninfo
Вы должны увидеть ответное сообщение, подобное этому:
You are connected to database "noviello" as user "noviello" via socket in "/var/run/postgresql" at port "5432".
Добавлять и удалять данные в таблицах
Ниже приведен пример создания таблицы:
CREATE TABLE test (
id serial PRIMARY KEY,
esempio_1 varchar (50) NOT NULL,
esempio_2 varchar (25) NOT NULL,
esempio_3 varchar(25) check (esempio_3 in ('valore_1', 'valore_2', 'valore_3', 'valore_4', 'valore_5', 'valore_6', 'valore_7', 'valore_8')),
data_ins date
);
Чтобы просмотреть только что созданную таблицу:
\d
Вы должны увидеть ответное сообщение, подобное этому:
List of relations
Schema | Name | Type | Owner
--------+-------------------------+----------+---------
public | test | table | noviello
public | test_id_seq | sequence | noviello
(2 rows)
Чтобы просмотреть таблицу без дополнительной информации:
\dt
Вы должны увидеть ответное сообщение, подобное этому:
List of relations
Schema | Name | Type | Owner
--------+------------+-------+---------
public | test | table | noviello
(1 rows)
Чтобы вставить новые значения в таблицу:
INSERT INTO test (esempio_1, esempio_2, esempio_3, data_ins) VALUES ('valore_1', 'valore_2', 'valore_3', '2018-06-29');
INSERT INTO test (esempio_1, esempio_2, esempio_3, data_ins) VALUES ('valore_4', 'valore_5', 'valore_6', '2018-06-29');
Чтобы получить только что введенную информацию:
SELECT * FROM test;
Вы должны увидеть ответное сообщение, подобное этому:
id | esempio_1 | esempio_2 | esempio_3 | data_ins
----+-----------+-----------+-----------+------------
1 | valore_1 | valore_2 | valore_3 | 2018-06-29
2 | valore_4 | valore_5 | valore_6 | 2018-06-29
(2 row)
Чтобы удалить строку из базы данных:
DELETE FROM test WHERE esempio_1 = 'valore_1';
Снова извлеките информацию из базы данных, чтобы убедиться, что строка была удалена:
SELECT * FROM test;
Вы должны увидеть ответное сообщение, подобное этому:
id | esempio_1 | esempio_2 | esempio_3 | data_ins
----+-----------+-----------+-----------+------------
2 | valore_4 | valore_5 | valore_6 | 2018-06-29
(1 row)
Удалить и добавить столбцы в таблицы
Чтобы добавить столбец в базу данных:
ALTER TABLE test ADD altro date;
Для просмотра изменений повторите следующую команду:
SELECT * FROM test;
Вы должны увидеть ответное сообщение, подобное этому:
id | esempio_1 | esempio_2 | esempio_3 | data_ins | altro
----+-----------+-----------+-----------+------------+-----------
2 | valore_4 | valore_5 | valore_6 | 2018-06-29 |
(1 row)
Чтобы удалить столбец:
ALTER TABLE test DROP altro;
Для просмотра изменений повторите следующую команду:
SELECT * FROM test;
Вы должны увидеть ответное сообщение, подобное этому, без столбца, созданного выше:
id | esempio_1 | esempio_2 | esempio_3 | data_ins
----+-----------+-----------+-----------+------------
2 | valore_4 | valore_5 | valore_6 | 2018-06-29
(1 row)
Изменить данные в таблице
Чтобы изменить данные, вам нужно указать имя базы данных и столбец, который вы хотите изменить:
UPDATE test SET esempio_2 = 'nuovo_valore' WHERE esempio_1 = 'valore_4';
Для просмотра изменений повторите следующую команду:
SELECT * FROM test;
Вы должны увидеть ответное сообщение, подобное этому:
id | esempio_1 | esempio_2 | esempio_3 | data_ins
----+-----------+-----------+-----------+------------
2 | valore_4 | nuovo_valore | valore_6 | 2018-06-29
(1 row)
Вывод
Установка PostgreSQL на Debian 9 Stretch завершена.