1.获取某个用户创建的表名称
select table_name from all_tables t where t.owner='用户名';
例如:select table_name from all_tables t where t.owner='TEST'; --查找TEST用户创建的所有表名称,用户名区分大小写
2.获取当前用户下的所有表名称和字段信息
SELECT
d.TABLE_NAME TABName,--表名
COALESCE(t.COMMENTS, ' ') TABDesc, --表注释
a.COLUMN_NAME columnName, --字段名
a.DATA_TYPE columnType, --字段类型
a.DATA_LENGTH COLUMNwidth, --字段长度
a.DATA_SCALE precision,--字段小数位
decode(a.NULLABLE,'Y','0','1') ISnotNull,--是否允许空
COALESCE(m.COMMENTS, ' ') COLUMNTYPEMARK, --字段备注
decode(k.uniqueness,'UNIQUE','1','0') ISuniques, --是否唯一
COALESCE(k.index_name, ' ') indexName,--如果是索引,索引名
decode(k.key,'Y','1','0') ISPRIMARYKey --是否主键
FROM
user_tab_columns a
INNER JOIN user_tables d on a.TABLE_NAME=d.TABLE_NAME
LEFT JOIN user_tab_comments t ON t.TABLE_NAME=d.TABLE_NAME
LEFT JOIN user_col_comments m ON m.COLUMN_NAME=a.COLUMN_NAME AND m.TABLE_NAME=d.TABLE_NAME
LEFT JOIN
(
SELECT e.index_name,u.TABLE_NAME,u.COLUMN_NAME,e.uniqueness,decode(p.constraint_name,NULL,'N','Y') key
from user_indexes e INNER JOIN user_ind_columns u ON e.index_name=u.index_name
LEFT JOIN ( select constraint_name from user_constraints where constraint_type='P' ) p ON e.index_name=p.constraint_name
) k ON k.TABLE_NAME=a.TABLE_NAME and k.COLUMN_NAME=a.COLUMN_NAME
ORDER BY TABName
user_开头是当前用户,all_开头所有用户,dba_开头包括系统表
3.查看某张表下的所有列名、属性、注释
select u.column_name,a.data_type,u.comments
from user_col_comments u
left join all_tab_cols a
on a.column_name = u.column_name and a.table_name = u.table_name
WHERE a.table_name = '表名' order by column_id; --表名要大写
例如:
select u.column_name,a.data_type,u.comments
from user_col_comments u
left join all_tab_cols a
on a.column_name = u.column_name and a.table_name = u.table_name
WHERE a.table_name = 'TAB_TEST' order by column_id;
4.查看表注释
select * from user_tab_comments t where t.table_name='表名'; --表名要大写
5.查看某张表下的所有字段注释(没有数据类型)
select * from user_col_comments t where t.table_name='表名'; --表名要大写