Pgsql 查询数据库内各表的数据条数
时间: 2024-09-18 20:08:12 浏览: 75
在PostgreSQL中,你可以使用系统函数`pg_table_count()`或者SQL查询来获取数据库中每个表的数据行数。以下是两种方法:
1. 使用`pg_table_count()` 函数:
如果你已经连接到特定的数据库,可以直接运行以下命令来获取指定表的行数:
```
SELECT pg_table_count(table_name) FROM information_schema.tables WHERE table_schema = 'public';
```
这里将`table_name`替换为你想要查询的具体表名。
2. 使用SQL查询(适合所有表):
对于所有的表,可以编写动态查询或者存储过程来遍历所有表并计数:
```sql
SELECT schemaname || '.' || tablename AS tablename, count(*) AS rowcount
FROM pg_tables
WHERE schemaname NOT IN ('information_schema', 'pg_catalog')
GROUP BY tablename;
```
这会返回所有非系统表的名称及其对应的行数。
如果你想针对某个特定用户的所有表,只需更改`schemaname`条件即可。
相关问题
Pgsql 查询数据库内各表的数据数量
在PostgreSQL (简称PGSQL) 中,如果你想查询数据库内所有表的数据行数,可以使用系统信息视图`information_schema.tables` 和 `COUNT(*)` 函数。以下是一个基本的例子:
```sql
SELECT
table_name,
pg_total_relation_size(table_name) AS total_size,
(SELECT COUNT(*)
FROM information_schema.columns
WHERE table_name = sch.name AND column_default IS NULL) AS row_count
FROM
information_schema.tables
JOIN
pg_catalog.pg_namespace sch ON sch.oid = tables.schema_name
WHERE
sch.nspname != 'pg_catalog' AND sch.nspname != 'information_schema';
```
这个查询会返回每个表的名称、总大小以及每张表的行数(假设没有NULL值的默认列)。注意,`pg_total_relation_size()`函数用于计算表占用的空间,并非精确的行数。
如果你只想得到每个表的确切行数,可以对每个表单独运行`COUNT(*)`,但这可能会比较耗时,特别是对于大型数据库。
pgsql 查询数据库所有表的总的数据量大小
可以使用以下 SQL 语句查询 PostgreSQL 数据库的所有表的总数据量大小:
SELECT
pg_size_pretty(sum( pg_relation_size(quote_ident(table_name)) )) AS total_size
FROM
information_schema.tables
WHERE
table_schema = 'public';
阅读全文