Oracle 数据库表操作整理

 


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='表名';   --表名要大写












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值