February 13 2012

Деякі команди для роботи з PostgreSQL

Мітки: postgresql tips

От, прийшлось працювати з PostgreSQL. До цього мав справу в основному з MySQL. Нижче наведені деякі команди PostgreSQL які мені поки що прийшлось використати.

Під час встановлення PostgreSQL на Debian Linux у мене ніхто не спитав пароль користувача root для БД(як це робиться при встановлені MySQL). Щоб отримати доступ до БД потрібно запустити інтерактивну оболонку psql для «спілкування» с PostgreSQL. Робимо це від імені користувача postgres:

$ sudo -u postgres  psql
psql (8.4.9)
Type "help" for help.

postgres=#

Як поміняти пароль користувача БД в PostgreSQL?

postgres=# ALTER USER postgres WITH PASSWORD 'some-password';
ALTER ROLE

Наприклад, міняємо пароль для Василя:

postgres=# ALTER USER vasia WITH PASSWORD 'vasia-mega-password';
ALTER ROLE

Як створити нового користувача в PostgreSQL?

postgres=# CREATE USER furman WITH password 'qwerty100500';
CREATE ROLE

також можна додати нового користувача PostgreSQL утилітою createuser:

$ sudo -u postgres  createuser
Enter name of role to add: furman
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

Курим $ man createuser, якщо потрібно.


Як створити нову базу даних в PostgreSQL?

Тут також є два варіанта: за допомогою SQL-команди, або ж утиліти createdb.

postgres=# CREATE DATABASE my_pron_db WITH OWNER furman;
CREATE DATABASE

Або ж за допомогою вищезгаданої утиліти:

$ sudo -u postgres  createdb my_pron_db -O furman

Як переглянути список всіх баз даних в Postgresql?

Використаємо команду \ l :

postgres=# \l
                                    List of databases
     Name      |  Owner   | Encoding |  Collation  |    Ctype    | Access privileges 
---------------+----------+----------+-------------+-------------+-------------------
 my_pron_db    | furman   | UTF8     | uk_UA.UTF-8 | uk_UA.UTF-8 | 
 postgres      | postgres | UTF8     | uk_UA.UTF-8 | uk_UA.UTF-8 | 
 scrapemanager | postgres | UTF8     | uk_UA.UTF-8 | uk_UA.UTF-8 |

(3 rows)

Як убити базу даних в PostgreSQL ?

Все просто до піздєца:

postgres=# DROP DATABASE my_pron_db;
DROP DATABASE

Для отримання допомоги та довідок використовуємо команди \? та \h :

postgres=# \h select
Command:     SELECT
Description: retrieve rows from a table or view
Syntax:
[ WITH [ RECURSIVE ] with_query [, ...] ]
SELECT [ ALL | DISTINCT [ ON ( expression     [, ...] ) ] ]
* | expression [ [ AS ] output_name ] [, ...]
[ FROM from_item [, ...] ]

ну і так далі...