Oracle 数据库元数据查询

测试环境

操作系统: windows10
oracle版本: 19c

数据库客户端: navicat

元数据简介

元数据被称为数据的数据,类似于数据总览,mysql的元数据存储在 information_schema 数据库中(大多数都是如此),而oracle存储在数据字典中也类似information_schema数据库

数据字典的生成

  1. 数据字典是在数据库创建时,由Oracle数据库服务器自动创建的,存放在数据文件中,包括基表和视图两部分。

  2. 数据字典无法直接阅读,看不到数据字典但是可以通过sql查询出来。

  3. 数据字典数据由Oracle数据库服务器维护

数据字典的内容

  1. 所有模式对象的定义,包括表,视图,索引,族,同义词,序列号,存储过程,函数触发器等
  2. 数据库的逻辑结构和物理结构,如数据文件和重做文件的信息等。
  3. 用户信息

数据字典视图的分类

  1. DBA_*** 该视图包含数据库整个对象信息,只能由数据库管理员查看
  2. ALL_*** 包含某个用户所能看到的全部数据库信息
  3. USER_*** 包含当前用户访问的数据库对象信息

表元数据查询

获取表名称

-- 获取表名称
SELECT * FROM user_tables  -- 包含当前用户访问的数据库对象信息
SELECT * FROM all_tables  -- 包含某个用户所能看到的全部数据库信息
SELECT * FROM dba_tables -- 该视图包含数据库整个对象信息,只能由数据库管理员查看
WHERE owner = '用户名'

以下sql全部使用 user_权限 all_dba_都差不多

获取表注释

-- user_tab_comments 关于表注释的表
SELECT
	t.TABLE_NAME,
	tc.COMMENTS 
FROM
	USER_TABLES t,
	user_tab_comments tc 
WHERE
	t.TABLE_NAME = tc.TABLE_NAME

获取表字段

-- user_tab_columns 关于表字段信息的表
SELECT
	t.TABLE_NAME,
	t.COLUMN_NAME,
	t.DATA_TYPE,
	t.DATA_LENGTH,
	t.NULLABLE,
	c.COMMENTS 
FROM
	user_tab_columns t,
	user_col_comments c 
WHERE
	t.table_name = c.table_name 
	AND t.COLUMN_NAME = c.COLUMN_NAME 
	AND t.table_name = '****'

获取字段注释

-- user_col_comments 关于表字段的注释
SELECT
	* 
FROM
	user_col_comments 
WHERE
	table_name = '****';

获取表的索引

-- user_indexes 关于表的索引的表
SELECT
	t.*,
	i.index_type 
FROM
	user_ind_columns t,
	user_indexes i 
WHERE
	t.index_name = i.index_name 
	AND t.table_name = '****'

获取表的主键

-- user_constraints 关于主键信息的表 
SELECT
	cc.* 
FROM
	user_cons_columns cc,
	user_constraints cs 
WHERE
	cc.constraint_name = cs.constraint_name 
	AND cs.constraint_type = 'P' 
	AND cc.table_name = 'TD_BANKTYPE'
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香辣奥利奥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值