-- 查询所有用户表SELECT schemaname, tablename, tableowner
FROM pg_tables
WHERE schemaname NOTIN('information_schema','pg_catalog')ORDERBY schemaname, tablename;-- 查询所有视图SELECT schemaname, viewname, viewowner
FROM pg_views
WHERE schemaname NOTIN('information_schema','pg_catalog')ORDERBY schemaname, viewname;-- 查询所有表和视图(合并查询)SELECT schemaname, tablename, tableowner,'TABLE'as object_type
FROM pg_tables
WHERE schemaname NOTIN('information_schema','pg_catalog')UNIONALLSELECT schemaname, viewname as tablename, viewowner as tableowner,'VIEW'as object_type
FROM pg_views
WHERE schemaname NOTIN('information_schema','pg_catalog')ORDERBY schemaname, tablename;
查询特定模式的表和视图
-- 查询 public 模式下的所有表和视图SELECT table_schema, table_name, table_type
FROM information_schema.tablesWHERE table_schema ='public'ORDERBY table_type, table_name;-- 查询特定模式(如:sales)下的表和视图SELECT table_schema, table_name, table_type
FROM information_schema.tablesWHERE table_schema ='sales'ORDERBY table_type, table_name;
获取更详细的信息
-- 获取表和视图的详细信息SELECT n.nspname as schema_name,c.relname as object_name,CASE c.relkind WHEN'r'THEN'TABLE'WHEN'v'THEN'VIEW'WHEN'm'THEN'MATERIALIZED_VIEW'ELSE'OTHER'ENDas object_type,obj_description(c.oid)as description
FROM pg_catalog.pg_class c
LEFTJOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN('r','v','m')-- r=表, v=视图, m=物化视图AND n.nspname NOTIN('information_schema','pg_catalog')AND n.nspname !~'^pg_toast'ORDERBY n.nspname, c.relname;