Установка и использование PostgreSQL на сервере Ubuntu 12.04

Установка PostgreSQL

Прежде чем приступить к установке системы управления базами данных (СУБД) PostgreSQL, нужно обновить репозиторий apt-get:

apt-get update

Обновив apt-get, загрузите Postgres и зависимости:

sudo apt-get install postgresql postgresql-contrib

Готово! Система PostgreSQL установлена на сервер.

Создание ролей PostgreSQL

Для того чтобы различать пользователей и их права на доступ к базам данных, Postgres использует концепцию ролей (англ. roles). Ролью может быть отдельный пользователь или группа пользователей БД. После первой установки на сервер PostgreSQL предоставляет стандартного пользователя по имени postgres.

Даная система имеет два метода авторизации: ident и md5. По умолчанию используется метод ident, позволяющий привязать пользователя сервера к аккунту Postgres. Альтернативный метод md5, запрашивающий у клиента зашифрованный пароль, можно настроить в конфигурациях авторизации в /etc/postgresql/9.1/main/pg_hba.conf.

Чтобы создать нового пользователя, откройте аккаунт стандартного пользователя:

sudo su – postgres

Войдя в систему как стандартный пользователь, добавьте роль в систему PostgreSQL:

createuser
Enter name of role to add: newuser
Shall the new role be a superuser? (y/n) y

Чтобы защитить пользователя паролем, добавьте в команду createuser флаг –pwprompt:

createuser --pwprompt

Подключение к базе данных Postgres

Создав пользователя для постоянной работы с оболочкой Postgres, инициируйте для него базу данных.

Базу данных можно создать при помощи суперпользователя (superuser). Например, чтобы создать БД, выберите пользователя postgres:

su – postgres

Затем создайте первую БД, запустив:

createdb db_name

Примечание: для примера в данном руководстве будет использоваться БД по имени events.

Готово! Теперь доступ к оболочке Postgres открыт.

Создание и удаление таблиц PostgreSQL

Чтобы открыть базу данных, используйте команду:

psql -d db_name

Поскольку в данном руководстве БД называется events, чтобы открыть ее, нужно запустить команду:

psql -d events

Теперь можно приступить к созданию таблиц. Предположим, вы планируете встретиться с друзьями; все важные данные этой встречи можно расписать в таблице Postgres.

Итак, создайте таблицу:

CREATE TABLE party (name VARCHAR(20),
food VARCHAR(30),
confirmed CHAR(1),
signup_date DATE);

Данная команда выполняет следующие действия:

  • Создает таблицу по имени party;
  • Делит новую таблицу на 4 столбца: name, food, confirmed, signup date;
  • Ограничивает количество символов столбца name до 20 (при помощи команды VARCHAR);
  • Ограничивает количество символов столбца food до 30 (данный столбец содержит информацию о том, какую еду принесет на встречу тот или иной приглашенный);
  •  Ограничивает количество символов в столбце confirmed до одной буквы: Y или N (данный столбец предназначен для отметки, принял гость приглашение или нет);
  • Столбец date показывает, когда гость принял приглашение; Postgres требует, чтобы даты записывались в формате гггг-мм-дд.

После запуска данной команды Postgres подтвердит создание таблицы строкой:

CREATE TABLE

Чтобы просмотреть все таблицы в БД, используйте:

\dt

В данном случае результат будет выглядеть так:

postgres=# \dt
List of relations
Schema |  Name   | Type  | Owner
--------+---------+-------+-------
public | party  | table | root
(1 row)

Добавление данных в таблицу Postgres

Итак, теперь в базе данных есть рабочая таблица (в данном руководстве она отведена для планирования встречи). Попробуйте внести в таблицу нужные данные.

Для этого используйте:

INSERT INTO party (name, food, confirmed, signup_date) VALUES('Guest1', 'Casserole', 'Y', '2015-05-11');

Вывод будет следующим:

INSERT 0 1

Добавьте еще несколько строк в таблицу:

INSERT INTO party (name, food, confirmed, signup_date) VALUES('Guest2', 'Lime Biscuits', 'N', '2015-05-14');
INSERT INTO party (name, food, confirmed, signup_date)VALUES ('Guest3', 'BBQ','Y', '2015-05-18');
INSERT INTO party (name, food, confirmed, signup_date) VALUES('Guest4', 'Salad', 'Y','2015-05-18');

Чтобы просмотреть таблицу:

SELECT * FROM party;
name  |      food      | confirmed | signup_date
-------+----------------+-----------+-------------
Guest1 | Casserole      | Y         | 2015-05-11
Guest2 | Lime Biscuits | N         | 2015-05-14
Guest3 | BBQ            | Y         | 2015-05-10
Guest4 | Salad          | Y         | 2015-05-18
(4 rows)

Теперь попробуйте удалить данные из таблицы; например, удалите строку, содержащую данные о первом госте. Для этого используется команда DELETE:

DELETE FROM party WHERE name = 'Guest1' ;

Добавление и удаление столбцов

Этой таблице не хватает важных данных: электронных адресов приглашенных. Для этого можно просто добавить новый столбец:

ALTER TABLE party ADD email VARCHAR(40);

Данная команда добавляет новый столбец по имени email в конец таблицы potluck (по умолчанию) и ограничивает количество символов в нем до 40.

Так же просто можно и удалить ненужный столбец:

ALTER TABLE party DROP email;

Обновление данных в таблице Postgres

Данные, внесенные в таблицу Postgres, позже можно отредактировать.

К примеру, Guest2, который ранее отказался прийти, изменил свое решение. Чтобы отредактировать таблицу, введите:

UPDATE party set confirmed = 'Y' WHERE name = 'Guest2';

Также эту команду можно использовать для внесения данных в определенные ячейки (даже если они пусты).

Tags: , , , ,

Добавить комментарий