PostgreSQL


Connecting to postgres

$ sudo su - postgres
$ psql
psql -h <database.host> -U <user> -W

Basic commands

postgres=# \q # выйти
postgres=# \l  # список баз данных.
postgres=# \с dbname  # подсоединение к БД dbname.
postgres=# \dt  # список всех таблиц
postgres=# \d table  # структура таблицы table.
postgres=# \du  # список всех пользователей и их привилегий.
postgres=# \dt+  # список всех таблиц с описанием.
postgres=# \dt *s*  # список всех таблиц, содержащих s в имени.
postgres=# \o FILE  # сохранить результат запроса в файл FILE.
postgres=# \i FILE  # выполнить команды из файла FILE.
postgres=# \a  # переключение между режимами вывода: с/без выравнивания.

Create, delete database


Creating

CREATE DATABASE mydatabase
WITH
    OWNER = owner
    ENCODING = 'UTF8'
    LC_COLLATE = 'uk_UA.UTF-8'
    LC_CTYPE = 'uk_UA.UTF-8'
    TABLESPACE = pg_default
    CONNECTION LIMIT = -1;
postgres=# create database dbname with encoding='UNICODE';

postgres=# create user dbuser with password 'dbpass';

postgres=# grant all privileges on database dbname to dbuser;

Removing

postgres=# DROP DATABASE dbname;

Очищение таблицы

postgres=# TRUNCATE TABLE tablename RESTART IDENTITY CASCADE;

Backup, Dumps

pg_dump -h <database.host> -U <user> <database> > <database>.sql

pg_dump -h 192.168.0.14 -U postgres web_core > web_core.sql

Restore dump

psql -h <database.host> -U <new_user> <new_database> < <database>.sql

psql -h 192.168.0.14 -U web web_core2 < web_core.sql