网站开发简介广州seo优化外包公司
以下是一个综合查询,可以获取用户所有表的结构信息,包括表的中文描述、列的中文描述、主键标识、数据类型、是否为空、是否为日期类型以及列序号等信息:
目录
一、综合查询
使用说明
二、其他变体查询
1. 查询特定表的列信息
2. 查询所有表的基本信息和列数统计
一、综合查询
SELECT t.owner AS "用户",t.table_name AS "表名",tc.comments AS "表中文描述",c.column_name AS "列名",cc.comments AS "列中文描述",CASE WHEN pk.column_name IS NOT NULL THEN '是' ELSE '否' END AS "主键标识",c.data_type AS "数据类型",CASE WHEN c.data_type IN ('DATE','TIMESTAMP','TIMESTAMP WITH TIME ZONE','TIMESTAMP WITH LOCAL TIME ZONE') THEN '是' ELSE '否' END AS "是否日期",c.nullable AS "是否为空",c.column_id AS "列序号"
FROM all_tables t
JOIN all_tab_columns c ON t.owner = c.owner AND t.table_name = c.table_name
LEFT JOIN all_col_comments cc ON c.owner = cc.owner AND c.table_name = cc.table_name AND c.column_name = cc.column_name
LEFT JOIN all_tab_comments tc ON t.owner = tc.owner AND t.table_name = tc.table_name
LEFT JOIN (SELECT a.owner, a.table_name, a.column_nameFROM all_cons_columns aJOIN all_constraints b ON a.owner = b.owner AND a.constraint_name = b.constraint_nameWHERE b.constraint_type = 'P'
) pk ON c.owner = pk.owner AND c.table_name = pk.table_name AND c.column_name = pk.column_name
WHERE t.owner = UPPER('&输入用户名') -- 替换为要查询的用户名,或删除此条件查询所有用户
ORDER BY t.owner, t.table_name, c.column_id;
使用说明
- 替换用户名:将
&输入用户名
替换为您要查询的实际用户名,或者删除此条件查询所有用户 - 中文描述:
all_tab_comments
和all_col_comments
视图存储了表和列的注释信息(中文描述) - 主键标识:通过关联
all_constraints
和all_cons_columns
视图识别主键列 - 日期类型判断:通过检查
data_type
是否为日期相关类型来判断
二、其他变体查询
1. 查询特定表的列信息
SELECT c.column_name AS "列名",cc.comments AS "列中文描述",c.data_type AS "数据类型",CASE WHEN c.data_length > 0 THEN c.data_length WHEN c.data_precision IS NOT NULL THEN c.data_precision ELSE NULL END AS "长度/精度",CASE WHEN c.data_scale IS NOT NULL THEN c.data_scale ELSE NULL END AS "小数位",c.nullable AS "是否为空",CASE WHEN pk.column_name IS NOT NULL THEN '是' ELSE '否' END AS "主键标识",c.column_id AS "列序号"
FROM all_tab_columns c
LEFT JOIN all_col_comments cc ON c.owner = cc.owner AND c.table_name = cc.table_name AND c.column_name = cc.column_name
LEFT JOIN (SELECT a.owner, a.table_name, a.column_nameFROM all_cons_columns aJOIN all_constraints b ON a.owner = b.owner AND a.constraint_name = b.constraint_nameWHERE b.constraint_type = 'P'
) pk ON c.owner = pk.owner AND c.table_name = pk.table_name AND c.column_name = pk.column_name
WHERE c.owner = UPPER('&输入用户名')AND c.table_name = UPPER('&输入表名')
ORDER BY c.column_id;
2. 查询所有表的基本信息和列数统计
SELECT t.owner AS "用户",t.table_name AS "表名",tc.comments AS "表中文描述",COUNT(c.column_name) AS "列数",t.last_analyzed AS "最后分析时间",t.num_rows AS "行数估算"
FROM all_tables t
JOIN all_tab_columns c ON t.owner = c.owner AND t.table_name = c.table_name
LEFT JOIN all_tab_comments tc ON t.owner = tc.owner AND t.table_name = tc.table_name
WHERE t.owner = UPPER('&输入用户名')
GROUP BY t.owner, t.table_name, tc.comments,t.last_analyzed,t.num_rows
ORDER BY t.owner, t.table_name;
这些查询可以帮助您全面了解Oracle数据库中表的结构和元数据信息,特别适合数据字典分析、数据建模和系统文档编写等场景。