因为最近要写数据词典,整理了一下数据库相关问题
适用于oracle数据库,后续有时间会整理mysql
获取表:
select table_name from user_tables; //当前用户拥有的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner='用户名'
获取表字段:
select * from user_tab_columns where Table_Name='用户表'; select * from all_tab_columns where Table_Name='用户表'; select * from dba_tab_columns where Table_Name='用户表';
获取表注释:
select * from user_tab_comments
福利,可直接使用:
SELECT
ut.COLUMN_NAME 字段名称,
ut.DATA_TYPE || '(' || ut.DATA_LENGTH || ')' 字典类型,
ut.NULLABLE 是否为空,
uc.comments 字段注释
FROM
user_tab_columns ut
INNER JOIN user_col_comments uc ON ut.TABLE_NAME = uc.table_name
AND ut.COLUMN_NAME = uc.column_name
WHERE
ut.Table_Name = '表明' --表明必须为大写
ORDER BY
ut.column_id