Oracle中获取用户表信息详情

2018-01-20 11:04:26来源:网络收集作者:咖啡不加糖人点击

分享

[var1]

1.获取当前用户的用户名                                                            


SELECT USERNAME FROM USER_USERS;

2.获取某个用户下的所有表名称                                                        


SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = '用户名';--注意大小写

3.获取当前用户下某张表的详细信息                                                      


SELECT T.TABLE_NAME, --表名
T.COLUMN_NAME,--字段名
T.DATA_TYPE,--字段类型
T.DATA_LENGTH,--长度
T.NULLABLE--是否为空
FROM ALL_TAB_COLS T
WHERETABLE_NAME = '表名';--注意大小写

4.获取当前用户下所有表和字段信息详情                                                  


  (1)


SELECT
T1.TABLE_NAME, --表英文名
T6.COMMENTS,--表中文名
T1.COLUMN_ID,--字段序号
T1.COLUMN_NAME,--字段英文名
T5.COMMENTS,--字段中文名
T1.DATA_TYPE,--字段类型
T1.DATA_LENGTH,--数据长度
T1.CHAR_LENGTH,--字符长度
T1.DATA_PRECISION, --数值长度
T1.DATA_SCALE, --数值精度
T1.NULLABLE,--是否允许空值
T4.INDEX_NAME, --索引名称
T4.COLUMN_POSITION, --索引字段顺序号
T4.DESCEND--索引字段排序方式
FROM USER_TAB_COLUMNS T1 --表字段清单
LEFT JOIN (SELECT T2.TABLE_NAME,--表名
T2.COLUMN_NAME,--字段名
T2.COLUMN_POSITION,--字段顺序号
T2.DESCEND, --排序方式
T3.INDEX_NAME --索引名称
FROM USER_IND_COLUMNS T2--索引字段
LEFT JOIN USER_INDEXES T3 --索引信息
ONT2.TABLE_NAME = T3.TABLE_NAME AND T2.INDEX_NAME = T3.INDEX_NAME
AND T3.STATUS = 'VALID' AND T3.UNIQUENESS = 'UNIQUE') T4 --UNIQUE:唯一索引
ONT1.TABLE_NAME = T4.TABLE_NAME AND T1.COLUMN_NAME = T4.COLUMN_NAME
LEFT JOIN USER_COL_COMMENTS T5 ON T1.TABLE_NAME = T5.TABLE_NAME AND T1.COLUMN_NAME = T5.COLUMN_NAME
LEFT JOIN USER_TAB_COMMENTS T6 ONT1.TABLE_NAME = T6.TABLE_NAME
ORDER BYT1.TABLE_NAME, T1.COLUMN_ID;

 (2)


SELECT
T1.OWNER, --表Schema
T1.TABLE_NAME, --表英文名
T6.COMMENTS,--表中文名
T1.COLUMN_ID,--字段序号
T1.COLUMN_NAME,--字段英文名
T5.COMMENTS,--字段中文名
T1.DATA_TYPE,--字段类型
T1.DATA_LENGTH,--数据长度
T1.CHAR_LENGTH,--字符长度
T1.DATA_PRECISION, --数值长度
T1.DATA_SCALE, --数值精度
T1.NULLABLE,--是否允许空值
T4.INDEX_NAME, --索引名称
T4.COLUMN_POSITION, --索引字段顺序号
T4.DESCEND--索引字段排序方式
FROM ALL_TAB_COLUMNS T1 --表字段清单
LEFT JOIN (SELECT T2.TABLE_OWNER,--表
T2.TABLE_NAME,--表名
T2.COLUMN_NAME,--字段名
T2.COLUMN_POSITION,--字段顺序号
T2.DESCEND, --排序方式
T3.INDEX_NAME --索引名称
FROM ALL_IND_COLUMNS T2--索引字段
LEFT JOIN ALL_INDEXES T3 --索引信息
ON T2.TABLE_OWNER = T3.TABLE_OWNER AND T2.TABLE_NAME = T3.TABLE_NAME AND T2.INDEX_NAME = T3.INDEX_NAME
AND T3.STATUS = 'VALID' AND T3.UNIQUENESS = 'UNIQUE') T4 --UNIQUE:唯一索引
ON T1.OWNER = T4.TABLE_OWNER AND T1.TABLE_NAME = T4.TABLE_NAME AND T1.COLUMN_NAME = T4.COLUMN_NAME
LEFT JOIN ALL_COL_COMMENTS T5 ON T1.OWNER = T5.OWNER AND T1.TABLE_NAME = T5.TABLE_NAME AND T1.COLUMN_NAME = T5.COLUMN_NAME
LEFT JOIN ALL_TAB_COMMENTS T6 ON T1.OWNER = T6.OWNER AND T1.TABLE_NAME = T6.TABLE_NAME
WHERE T1.OWNER IN ('用户名')
ORDER BY T1.OWNER, T1.TABLE_NAME, T1.COLUMN_ID;

       备注:方法(1)和方法(2)的区别在于使用的表不同,表以USER开头,查询当前用户,以ALL开头,查询所有用户,以DBA开头,查询包括系统表的内容。在日常使用中,灵活变通,选择不同的表,查询自己需要的内容。


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台