1.什么是数据字典?
数据字典是记录、验证和提供有关当前数据库信息的一些只读表和视图的集合。
在数据库创建期间,oracle服务器在数据文件中创建另外的对象结构:
1)数据字典表(静态数据字典)
2)动态性能表(动态数据字典)
2.数据字典表分类:
1)基表
a.存储数据库的描述信息
b.使用CREATE DATABASE命令创建
2)数据字典视图
a.总结基表信息
b.数据库创建完毕后运行catalog.sql脚本创建
3.数据字典视图包含以下3中静态视图
1)user_* 该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
2)all_* 该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)
3)dba_* 该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)
4.数据字典都包含哪些个信息?
1)数据库逻辑和物理结构
2)对象定义和空间分配情况
3)实体约束
4)用户信息
5)角色信息
6)权限信息
7)审计信息
5.数据字典内容什么时间变化?
当一个DDL语句执行后,oracle服务器会更新相应数据字典内容。
6.动态性能表的来源?
内存和控制文件
7.常用数据字典介绍:
1)dba_users 记录当前数据库所有用户信息:
SQL> desc dba_users
名称 是否为空 类型
----------------------------------------- -------- ----------------------------
USERNAME NOT NULL VARCHAR2(30)
USER_ID NOT NULL NUMBER
PASSWORD VARCHAR2(30)
ACCOUNT_STATUS NOT NULL VARCHAR2(32)
LOCK_DATE DATE
EXPIRY_DATE DATE
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
PROFILE NOT NULL VARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)
EXTERNAL_NAME VARCHAR2(4000)
2)user_tables 记录当前用户所属表信息
SQL> select table_name,tablespace_name,num_rows from user_tables;
TABLE_NAME TABLESPACE_NAME NUM_ROWS
------------------------------ ------------------------------ ----------
DEPT USERS 4
EMP USERS 14
BONUS USERS 0
SALGRADE USERS 5
DSQL_TEST USERS 0
TEST USERS 0 △
已选择6行。
SQL> analyze table test compute statistics;
表已分析。
SQL> select table_name,tablespace_name,num_rows from user_tables;
TABLE_NAME TABLESPACE_NAME NUM_ROWS
------------------------------ ------------------------------ ----------
DEPT USERS 4
EMP USERS 14
BONUS USERS 0
SALGRADE USERS 5
DSQL_TEST USERS 0
TEST USERS 3 △
已选择6行。
3)v$instance 记录当前实例信息
SQL> desc v$instance
名称 是否为空 类型
----------------------------------------- -------- ----------------------------
INSTANCE_NUMBER NUMBER
INSTANCE_NAME