Небольшая шпаргалка для начинающих пользователей PostgreSQL, переключится в контекст базы (use database в mysql), список таблиц БД (show tables в mysql) и просмотр пользователей имеющих доступ к базе данных.
Работа с локальным PostgreSQL
Для работы с локальным сервером БД необходимо переключится в контекст пользователя postgres и запустить оснастку psql
[root@s ~]# su postgres
bash-4.4$ psql
could not change directory to "/root": Permission denied
psql (10.6)
Type "help" for help.
postgres=#
Список баз данных на сервере (аналог ‘show databases’) — \l
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
quaded | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
postgres=#
Подключится к базе (аналог ‘use database’) — \c
postgres=# \c quaded
You are now connected to database "quaded" as user "postgres".
quaded=#
Список таблиц в БД (аналог show tables) — \dt
quaded=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------------------+-------+-------
public | alembic_version | table | quaded
public | flask_dance_oauth | table | quaded
public | prices | table | quaded
public | product | table | quaded
public | user | table | quaded
(5 rows)
quaded=#
Более подробный список таблиц (с размером таблицы на диске) — \dt+
quaded=# \dt+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+-------------------+-------+-------+------------+-------------
public | alembic_version | table | quaded | 8192 bytes |
public | flask_dance_oauth | table | quaded | 16 kB |
public | prices | table | quaded | 8192 bytes |
public | product | table | quaded | 16 kB |
public | user | table | quaded | 8192 bytes |
(5 rows)
Посмотреть список записей в таблице можно обычным SQL запросом из контекста БД
select * from products;
Как узнать размер базы данных PostgreSQL?
Войти в интерактивный терминал:
$ sudo -u postgres psql
Выполнить запрос:
# select pg_database_size('base');
В человеческом виде размер базы покажет обёртка pg_size_pretty
SELECT pg_size_pretty( pg_database_size( 'sample_db' ) );
pg_size_pretty
----------------
36 GB
Таким же макаром можно посмотреть и размер таблицы (с индексами)
SELECT pg_size_pretty( pg_total_relation_size( 'table' ) );
pg_size_pretty
----------------
6341 MB
Если нужно без индексов, тогда запрос другой:
# SELECT pg_size_pretty( pg_relation_size( 'table' ) );
pg_size_pretty
----------------
1341 MB
Размер всех БД построчно:
select datname, pg_size_pretty(pg_database_size(datname))
from pg_database
Общий размер всех БД одним значением:
select pg_size_pretty(sum(pg_database_size(datname)))
from pg_database