达梦数据库查询每个schema下的每个表的数据条数,该怎么写
时间: 2023-04-04 15:03:55 浏览: 746
您可以使用以下 SQL 语句查询达梦数据库每个 schema 下每个表的数据条数:
SELECT table_schema, table_name, table_rows
FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema', 'mysql', 'performance_schema')
ORDER BY table_schema, table_name;
相关问题
pgsql 查询数据库某个schema每个表中的一条数据
在PostgreSQL数据库中,如果你想查询某个schema(模式)中每个表的一条数据,你可以使用动态SQL来实现这一需求,因为PostgreSQL没有直接支持查询所有表数据的SQL语句。以下是一个简单的步骤说明,你可以通过编写一段SQL脚本来完成这个任务:
1. 首先,你需要查询出schema中所有的表名,这可以通过查询`information_schema.tables`视图来实现。
2. 然后,使用动态SQL构建查询每个表中一条数据的SQL语句。
3. 最后,执行这些动态生成的SQL语句来获取每个表的数据。
下面是一个示例SQL脚本,用于实现上述步骤:
```sql
-- 设置schema名称
SET search_path = myschema;
-- 初始化一个变量用于动态SQL
DO $$
BEGIN
-- 清空临时表
EXECUTE 'DROP TABLE IF EXISTS temp_result';
EXECUTE 'CREATE TEMP TABLE temp_result AS TABLE ' || quote_ident(T.table_schema) || '.' || quote_ident(T.table_name);
-- 插入数据
EXECUTE 'INSERT INTO temp_result SELECT * FROM ' || quote_ident(T.table_schema) || '.' || quote_ident(T.table_name) || ' LIMIT 1' FROM information_schema.tables T WHERE T.table_schema = 'myschema' AND T.table_type = 'BASE TABLE' ORDER BY table_name;
END;
$$;
-- 选择临时表中的数据
SELECT * FROM temp_result;
-- 清理临时表
DROP TABLE temp_result;
```
请注意,上述代码中的`myschema`应该替换为你想要查询的schema名称。另外,由于动态SQL涉及到构建并执行SQL字符串,存在SQL注入的风险,因此在构建SQL字符串时应使用安全的方式。
查询数据库中每个表的数据量
查询数据库中每个表的数据量通常涉及SQL查询,具体操作取决于你使用的数据库管理系统(DBMS)。以下是几个常见的步骤:
1. **MySQL**: 对于MySQL,你可以使用`SHOW TABLE STATUS`命令,它会返回所有表的信息,包括数据行数(Rows)。
```sql
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your_database_name';
```
2. **SQL Server**: 可以使用`sys.dm_db_tables_stats`视图,获取表级别的统计信息。
```sql
SELECT name, rows FROM sys.dm_db_table_stats(your_database_name, your_table_name);
```
3. **Oracle**: 使用`DBA_TAB_STATISTICS`或`ALL_TAB_STATISTICS`视图来查看表信息。
```sql
SELECT table_name, num_rows FROM DBA_TAB_STATISTICS (your_schema_name, your_table_name);
```
4. **PostgreSQL**: 可以通过运行系统信息查询(如`pg_stat_user_tables`)获得数据量。
```sql
SELECT schemaname, tablename, reltuples AS row_count FROM pg_stat_user_tables WHERE schemaname = 'public';
```
执行以上查询后,你需要将`your_database_name`, `your_table_name`, 或者`your_schema_name`替换为你实际数据库、表名或模式名称。