Oracle数据库学习
数据字典和动态性能视图 数据字典是Oracle中最重要的组成部分,它提供了数据库的一些系统信息。 动态性能视图记载了例程启动后的相关信息。
eg:
用户名、权限和角色
角色和权限的区别:角色由权限构成,角色有两种权限(系统权限(140种),对象权限(16种))查询Oracle中所有的系统权限
select * from system_privilege_map order by name;
查询Oracle中的所有 对象权限
select distinct privilege from dba_tab_privs;
Oracle中究竟有多少种角色?
select * from dba_roles;(25种)
如何查询一个角色包括的权限1.一个角色包含的系统权限
select * from dba_sys_privs where grantee='DBA';(DBA是一个角色)
或者
select * from role_sys_privs where role='dba';
2.一个角色包含的对象权限
select * from dba_tab_privs where grantee='DBA';(DBA是一个角色)
3.如何查看某个用户具有什么样的角色?
select * from dba_role_privs where grantee='用户名';
4.显示当前用户可以访问的所有数据字典的视图
select * from dict where comments like ‘%grant%’;
5.显示当前数据库的全称
select * from global_name;
其他说明
管理表空间和数据文件:
扩展表空间的三种方法:
故障处理:
表空间的小结:
1.了解表空间和数据文件的作用。
2.了解常用表空间,undo表空间和临时表空间的建立方法。
3.了解表空间的各个状态(online,offline,read,write,read only)的作用,及如何改变表空间的状态的方法。
4.了解移动数据文件的原因,及使用alter tablespace 和 alter datatable命令移动数据文件的方法。
其他表空间:
除了最常用 的数据表空间外,还用其他的表空间:
1.索引表空间。
2.undo表空间。
3.临时表空间。
4.非标准块的表空间。
数据的完整性:
介绍:数据的完整性用于确保数据库遵从一定的商业和业务逻辑。在oracle中数据的完整性可以使用约束、触发器、应用程序(过程、函数)三种方法开实现。在这三种方法中,因为约束易于维护,并且具有最好的性能,所以作为维护数据完整性的首选。
维护数据完整性-约束 在Oracle中约束包括五中:not null、unique、 primary key、 foreign key和check五中约束。 1. not null(非空)
如果在列上定义了not null,那么当插入数据时,必须为列提供数据。
2. unique(唯一)
当定义了唯一约束后,该列值是不能重复的,但是可以为null。
3.primary key(主键)
用于唯一的标示表行的数据,当定义主键约束后,该列不但不能重复而且不能为空。
需要说明的是:一张表最多只能有一个主键,但是可以有多个unique约束。
4.foreign key(外键)
用于定义主表喝从表之间的关系。外键约束要定义在从表上,主表则必须具有主键约束或是unique约束,当定义外键约束后,要求外键列数据必须在主表的主键列存在或者为null。
5.check(检查)
用于强制数据满足的条件,假定在sal列上定义了check约束,并要求sal列的值在1000-2000之间,如果不在1000-2000之间就会报错。
删除约束:
表级定义和列级定义:
管理索引 索引是用于加速数据存取的数据对象,合理的使用索引可以大大降低i/o次数,从而提高数据访问性能。 创建索引 create index nameindex on customer(name)(在name列上建立索引)
索引缺点的分析: