Oracle 数据库表操作整理

来源:互联网 发布:lapse it 编辑:程序博客网 时间:2024/06/05 18:31

 


1.获取某个用户创建的表名称

select table_name from all_tables t where t.owner='用户名';


例如:select table_name from all_tables t where t.owner='TEST';    --查找TEST用户创建的所有表名称,用户名区分大小写



2.获取当前用户下的所有表名称和字段信息

SELECTd.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 --是否主键FROMuser_tab_columns aINNER JOIN user_tables d on a.TABLE_NAME=d.TABLE_NAMELEFT JOIN user_tab_comments t ON t.TABLE_NAME=d.TABLE_NAMELEFT JOIN user_col_comments m ON m.COLUMN_NAME=a.COLUMN_NAME AND m.TABLE_NAME=d.TABLE_NAMELEFT JOIN(SELECT e.index_name,u.TABLE_NAME,u.COLUMN_NAME,e.uniqueness,decode(p.constraint_name,NULL,'N','Y') keyfrom user_indexes e INNER JOIN user_ind_columns u ON e.index_name=u.index_nameLEFT 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_NAMEORDER 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='表名';   --表名要大写












0 0
原创粉丝点击