Работа с PostgreSQL: от полного нуля до полного просветления - Такси №1

Работа с PostgreSQL: от полного нуля до полного просветления

PostgreSQL – это опенсорсная реляционная СУБД. В статье будет рассматриваться процесс установки, настройки / управления, а также базовые операции с БД.

Установка

Если на вашей машине стоит MacOS, то процесс установки можно запустить командой:

brew install postgresql

На Linux СУБД устанавливается так:

sudo apt-get install postgresql postgresql-contrib

Если у вас другая ОС, есть непонятные моменты или вопросы – обращайтесь в официальный хелп.

После того, как все загружено и установлено, можно проверить, все ли в порядке, и какая стоит версия PostgreSQL. Для этого выполните следующую команду:

postgres --version

Разбираемся с настройками

Работа с PostgreSQL может быть произведена через командную строку (терминал) с использованием утилиты psql – инструмент командной строки PostgreSQL. Попробуйте ввести следующую команду:

psql postgres (для выхода из интерфейса используйте \q)

Этой командой вы запустите утилиту psql. Хотя есть много сторонних инструментов для администрирования postgresql, нет необходимости их устанавливать, т. к. psql удобен и отлично работает.

Если вам нужна помощь, введите \help (или -h) в psql-терминале. Появится список всех доступных параметров справки. Вы можете ввести \help [имя команды], если вам нужна помощь по конкретной команде. Например, если ввести \help UPDATE в консоли psql, вы увидите синтаксис команды update.

Description: update rows of a table
[ WITH [ RECURSIVE ] with_query [, ...] ]
UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
    SET { column_name = { expression | DEFAULT } |
          ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) |
          ( column_name [, ...] ) = ( sub-SELECT )
        } [, ...]
    [ FROM from_list ]
    [ WHERE condition | WHERE CURRENT OF cursor_name ]
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

Если у вас возникает много вопросов – не стоит отчаиваться. Поиск в интернете предоставит массу примеров, ну и официальную документацию psql никто не отменял.

Первым делом необходимо проверить наличие существующих пользователей и баз данных. Выполните следующую команду, чтобы вывести список всех баз данных:

\list или \l
Работа с PostgreSQL

На рисунке выше вы видите три базы данных по умолчанию и суперпользователя postgres, которые создаются при установке PostgreSQL.

Чтобы вывести список всех пользователей, выполните команду \du. Атрибуты пользователя postgres говорят нам, что он суперпользователь.

Вывод стандартного пользователя

Основные операции с БД

Чтобы выполнять базовые действия в СУБД, нужно знать Structured Query Language (SQL).

Создание базы данных

Для создания базы данных используется команда create database. В приведенном ниже примере создается база данных с именем proglib_db.

Создание БД

Если вы забыли точку с запятой в конце запроса, знак «=» в приглашении postgres заменяется на «-», как показано на рисунке ниже. Это зачастую указывает на то, что необходимо завершить (дописать) запрос.

Создание БД-2

На картинке нам сообщают об ошибке из-за того, что в нашем случае база уже создана. Вы поймете, что к чему, когда начнете писать более длинные запросы.

Создание нового юзера

Для создания пользователя существует команда create user. В приведенном ниже примере создается пользователь с именем author.

Создание пользователя

При создании пользователя отобразится сообщение CREATE ROLE. Каждый пользователь имеет свои права (доступ к базам, редактирование, создание БД / пользователей и т. д.). Вы могли заметить, что столбец Attributes для пользователя author пуст. Это означает, что пользователь author не имеет прав администратора. Он может только читать данные и не может создать другого пользователя или базу.

Вы можете установить пароль для существующего пользователя. С этой задачей справится команда \password:

postgres=#\password author

Чтобы задать пароль при создании пользователя, можно использовать следующую команду:

postgres=#create user author with login password 'qwerty';

Удаление базы или пользователя

Для этой операции используется команда drop: она умеет удалять как пользователя, так и БД.

drop database <database_name>
drop user <user_name>

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

Если вы укажете psql postgres (без имени пользователя), то postgreSQL пустит вас под стандартным суперюзером (postgres). Чтобы войти в базу данных под определенным пользователем, можно использовать следующую команду:

psql [database_name] [user_name]

Давайте войдем в базу proglib_db под пользователем author. Нажмите \q, чтобы выйти из текущей БД, а затем выполните следующую команду:

Вход в бд

Дополнительная литература

  • Beginning PostgreSQL on the Cloud. Работа с PostgreSQL начинается с этой книги. Приступать к изучению чего-то нового лучше с практики. Эта публикация включает в себя огромное количество полезных рабочих примеров, взятых из реальных проектов.
  • Администрирование PostgreSQL 9. Книга рецептов. Отличная настольная книга для разработчиков боевых проектов на PHP, Ruby, .NET, Java и Python. Рассматриваются распространенные общие вопросы по архитектуре, восстановлению, репликации и т. д.
  • Семь баз данных за семь недель. Данная книга подойдет для общего развития специалиста с любым уровнем знаний. Автор рассказывает об организации каждой СУБД, а также о том, в каком случае выгодно выбрать ту или иную БД.