Oracle中如何获取用户表信息等详情?
程序员文章站
2022-04-20 22:04:18
1.获取当前用户的用户名
select username from user_users;
2.获取某个用户下的所有表名称
select table_name from all_tables...
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 where table_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 --索引信息 on 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.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 on t1.table_name = t6.table_name order by t1.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开头,查询包括表的内容。在日常使用中,灵活变通,选择不同的表,查询自己需要的内容。
上一篇: 真是有礼貌的孩子
下一篇: 实现搜索结果的关键词变色标注的程序
推荐阅读
-
获取MSSQL 表结构中字段的备注、主键等信息的sql
-
深入探讨:Oracle中如何查询正锁表的用户以及释放被锁的表的方法
-
vue 获取页面详情后 切换页面时 如何监听用户是否修改过信息
-
Oracle中如何获取用户表信息等详情?
-
如何完全卸载oracle和删除oracle在注册表中的注册信息
-
获取MSSQL表结构中字段的备注、主键等信息
-
oracle获取当前用户表、字段等详细信息SQL
-
DB2获取当前用户表、字段、索引等详细信息
-
mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值
-
mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值