文章

pgsql常用命令

登录

1
2
3
4
5
psql -h hostname -d dbname -U username

成功连接后,你将看到类似以下的提示符,表示你已经连接到数据库:
dbname=>

列出所有库

1
\l

切换数据库

1
\c your_database_name

列出所有表

1
2
3
4
5
\dt

列出当前数据库中的所有表
\dt schema_name.*

查询所有数据库存储大小

1
2
3
4
5
select datname,pg_size_pretty(pg_database_size(oid)) from pg_database;

k可以快速查看
\l+

查看表空间的占用情况, 列出所有数据库的大小

1
2
3
4
5
6
7
SELECT
    pg_database.datname AS database_name,
    pg_size_pretty(pg_database_size(pg_database.datname)) AS size
FROM
    pg_database
ORDER BY
    pg_database_size(pg_database.datname) DESC;

列出当前所有表及占用空间

查询将列出当前数据库中所有用户表的模式、名称以及占用的空间大小,并按照表占用的空间大小降序排列

1
2
3
4
5
6
7
8
9
10
SELECT
    table_schema,
    table_name,
    pg_size_pretty(pg_total_relation_size(table_schema || '.' || table_name)) AS total_table_size
FROM
    information_schema.tables
WHERE
    table_type = 'BASE TABLE'
ORDER BY
    pg_total_relation_size(table_schema || '.' || table_name) DESC;

查找最大的表

1
2
3
4
5
6
7
8
SELECT
    table_schema || '.' || table_name AS table_full_name,
    pg_size_pretty(pg_total_relation_size(table_schema || '.' || table_name)) AS total_table_size
FROM
    information_schema.tables
ORDER BY
    pg_total_relation_size(table_schema || '.' || table_name) DESC
LIMIT 1;

删除表数据

1
2
3
4
5
6
# 删除表
DELETE FROM table_name;

# 删除数据库中的数据
TRUNCATE TABLE your_table_name;

本文由作者按照 CC BY 4.0 进行授权