oracle的sql获取表字段,oracle获取当前用户表、字段等详细信息SQL

这个笔记记录了一段SQL查询,用于获取Oracle数据库中表的详细信息,包括表名、表注释、字段名、字段类型、字段长度、精度、是否允许为空、字段备注、是否唯一、索引名以及是否为主键。查询结果按表名排序,适用于数据库管理和信息检索。
摘要由CSDN通过智能技术生成

做个笔记,仅供参考

SELECT

d.TABLE_NAME tbName,//表名

COALESCE(t.COMMENTS, ' ') tbDesc, //表注释

a.COLUMN_NAME columnName, //字段名

a.DATA_TYPE columnType, //字段类型

a.DATA_LENGTH width, //字段长度

a.DATA_SCALE precision,//字段小数位

decode(a.NULLABLE,'Y','0','1') notNull,//是否允许空

COALESCE(m.COMMENTS, ' ') comments, //字段备注

decode(k.uniqueness,'UNIQUE','1','0') uniques, //是否唯一

COALESCE(k.index_name, ' ') indexName,//如果是索引,索引名

decode(k.key,'Y','1','0') masterKey//是否主键

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 tbName

备注:user_开头是当前用户,all_开头所有用户,dba_开头包括系统表

时间: 2014-07-17

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值