Oracle 数据库对象_序列_索引_视图_同义词
- 格式:ppt
- 大小:314.50 KB
- 文档页数:57


《Oracle数据库应用》理论课数据库对象⏹本章技能目标◆使用同义词◆使用序列◆创建视图◆创建索引1.数据库对象Oracle 数据库对象又称模式对象。
数据库对象是逻辑结构的集合,最基本的数据库对象是表。
其他数据库对象包括:同义词,序列,视图,索引。
下面我们依次讲解这几个数据库对象的使用。
2.同义词同义词是数据库对象的一个别名,这些对象可以是表,视图,序列,过程,函数,程序包,甚至其它同义词,通过使用同义词,用户可以访问其它模式的数据库对象而无需指定模式前缀,例如用户USER1要访问用户USER2的表EMP,必须使用USER2.EMP,那么USER1就可以使用同义词像访问自己的表一样引用USER2.EMP了。
同义词有以下用途:简化SQL语句隐藏对象的名称和所有者提供对对象的公共访问为分布式数据库德远程对象提供了位置透明性同义词允许应用程序访问数据库对象,不论那个用户或哪个数据库拥有该对象。
但是同义词不能代替权限,在使用同义词之前确保用户已得到访问对象的权限。
可以通过同义词执行SELECT,INSERT,UPDA TE,DELETE,LOCK TABLE ,GRANT和REVOKE 等语句。
同义词只是表的一个别名,因此对它的操作都会影响到表。
同义词共有两种类型:公有同义词。
私有同义词。
2.1私有同义词和公有同义词2私有同义词只能在其模式内访问,且不能与当前模式的对象同名。
要在自身的模式创建私有同义词,用户必须拥有CREATE SYNONYM 系统权限。
要在其它用户模式的创建私有同义词,用户必须CREATE ANY SYNONYM 系统权限.。
创建私有同义词语法如下:OR REPLACE 表示在同义词存在的情况下替换该同义词。
synonym_name 表示要创建的同义词的名称。
object_name 指定要为之创建同义词的对象的名称。
例1:假定两个用户模式:ACCP 和SCOTT ,SCOTT 用户拥有EMP表,ACCP 用户需要频繁引用EMP表,为了简化SQL语句,需要为ACCP 用户创建一个同义词。
数据库的六个对象
数据库的六个对象包括表(Table)、视图(View)、索引(Index)、触发器(Trigger)、存储过程(Stored Procedure)和函数(Function)。
1. 表(Table):是数据库中存储数据的主要对象,由列(Column)和行(Row)组成,用于存储实际的数据记录。
2. 视图(View):是虚拟表,是根据特定查询定义的,可以将一个或多个表的部分或全部数据进行组合、过滤和展示。
视图提供了一种方便的方式来访问和操作数据库中的数据。
3. 索引(Index):是为了提高数据库的查询性能而创建的数据结构。
索引可以加快数据的检索速度,通过预先排序和分组数据来优化查询操作。
4. 触发器(Trigger):是一种特殊的存储过程,与表有关联,并在满足一定条件时自动执行。
触发器通常用于保持数据的一致性和完整性,以及在特定事件发生时执行额外的操作。
5. 存储过程(Stored Procedure):是预先编译并存储在数据库中的一段可重复使用的代码。
存储过程通常用于实现复杂的业务逻辑,可以接受参数、返回结果,并在需要时被调用执行。
6. 函数(Function):是一段可重复使用的代码,接受输入参数并返回一个值。
函数可以在查询语句中使用,以实现一些计算、转换和操作数据的功能。
函数可以是内置函数(如日
期函数、字符串函数等)或用户自定义函数。
常用的Oracle数据库对象一、数据库对象简介1、Oracle数据库对象又称模式对象2、数据库对象是逻辑结构的集合,最基本的数据库对象是表3、其他数据库对象包括:二、同义词1、同义词是现有对象的一个别名●简化SQL语句●隐藏对象的名称和所有者●提供对对象的公共访问2、同义词公用两种类型●公有同义词可被所有的数据库用户访问●私有同义词只能在其模式内访问,且不能与当前模式的对象同名●创建一个名为emp同义词,来自scott.emp表,查询的时候就可以直接用同义词,而不用加模式名(这个是私用同义词,只能针对当前用户)●创建一个公用的同义词,当前用户可以查询●其他用户也可以查询●替换和删除同义词(包括共有和私有)三、序列1、序列是用于生成唯一、连续序号的对象2、序列可以是升序的,也可以是降序的3、使用create sequence 语句创建序列4、序列的访问,通过序列的伪列来访问序列的值●Nextval返回序列的下一个值(用来实现排序序列名.nextval)●Currval返回序列的当前值(用来查看当前序列值序列名.currval)●向表中插入序列toys_seq.nextval●查看序列●查看序列的当前值●修改序列●查看修改后的序列,可以插入的值●删除序列四、视图1、视图以经过制定的方式显示来自一个或多个表的数据2、视图可以视为‘虚拟表’或‘存储的查询’3、创建视图所依据的表称为‘基表’4、视图的优点有:●提供了另外一种级别的表安全性●隐藏的数据的复杂性●简化的用户的SQL命令●隔离基表结构的改变●通过重命名列,从另一个角度提供数据5、创建视图●创建表,并插入数据●创建视图并查看视图●运用order by子句创建视图●创建带有错误的视图●在创建一个表,用于多表连接的视图6、在视图上也可以使用修改数据的DML语句,如:insert update和delete7、视图上的DML语句有如下限制:●只能修改一个底层的基表●如果修改违反了基表的约束条件,则无法更新视图●如果视图包含连接操作符、distinct关键字、集合操作符、聚合操作符或group by子句,则将无法更新视图●如果视图包含位列或表达式,则将无法更新视图8、键保留表●因为studno既是stud_details中的主键,也是连接结果的主键8、视图中的函数●视图中可以使用单行函数、分组函数和表达式●使用drop view语句删除视图五、索引1、索引是与表相关的一个可选结构2、用以提高SQL语句执行的性能3、减少磁盘I/O4、使用create index语句创建索引5、在逻辑上和物理上都独立于表的数据6、Oracle自动维护索引7、索引有各种类型,除了标准索引外,还有一些特殊烈性的索引:8、创建标准索引●创建、更改和删除索引9、唯一索引●唯一索引确保在定义索引的列中没有重复值●Oracle自动在表中的主键列上创建唯一索引●使用create unique index语句创建唯一索引10、组合索引●组合索引是在表的多个列上创建的索引●索引中列的顺序是任意的●如果SQL语句的where子句引用了组合索引的所有累或大多数列,则可以提高检索速度●组合emp2表中的empno和ename列创建索引11、反向键索引●反向键索引反转索引列键值的每个字节●通常建立在值是连续增长的列上,使数据均匀地分布在整个索引上●创建索引时使用reverse关键字12、位图索引●位图索引适合创建在低基数列上●位图索引不直接存储rowID,而是存储字节位rowID的映射●减少响应时间●节省空间占用13、索引组织表●索引组织表的数据存储在与其关联的索引上●索引中存储的时行的实际数据,而不是rowID●基于主键访问数据●Create table命令与organization index子句一起用于创建索引组织表●普通表与索引表的比较14、基于函数的索引●基于一个或多个列上的函数或表达式创建的索引●表达式中不能出现聚合函数●不能在LOB类型的列上创建●创建必须具有query rewriter权限六、总结1、同义词时现有数据库对象的别名2、序列用于生成唯一、连续的序号3、视图时基于一个或多个表的虚拟表4、索引时与表相关的一个可选结构,用于提高SQL语句执行的性能5、索引类型有标准索引、唯一索引、反向键索引、位图索引和基于函数的索引6、索引组织基于主键访问数据。