视图,序列和同义词等模式对象
1.掌握视图和序列等对象的创建和维护;
2.学习了解这些对象在数据库中的作用及使用范围。
任务
- 按给定条件创建数据视图。创建学生课程成绩视图,包括学号,姓名,性别,课程名和成绩,按学号升序排列,专业为计算机。
- 练习同义词和序列的创建和使用。
视图
oracle视图可以理解为数据库中一张虚拟的表,他是通过一张或者多张基表进行关联查询后组成一个虚拟的逻辑表。查询视图,本质上是对表进行关联查询。
- 视图建立在已有表的基础上, 视图赖以建立的这些表称为基表
- 向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句.
- 视图向用户提供基表数据的另一种表现形式
作用和优势
- 使数据简单化,易读:创建表时需要考虑其中复杂性的业务关系或逻辑关系,但是使用观看中,却不利于人员查看,通过将复杂的查询创建成视图,提供给他人使用,来简化数据,屏蔽数据的复杂性。
- 表结构设计的补充:系统刚刚开始设计时,大部分程序是直接访问表结构的数据的,但是随着业务的变化、系统的更新等,造成了某些表结构的不适用,这时候去修改表结构对系统的影响太大,开发成本较高,这个时候可以创建视图来对表结构的设计进行补充,降低开发成本。程序可以直接通过查询视图得到想要的数据。
- 增加安全性:视图可以把表中指定的字段展示给用户,而不必把表中所有字段一起展示给用户。在实际开发中,视图经常作为数据的提供方式,设置为只读权限提供给第三方人员进行查询使用。
创建视图
创建视图的语法结构如下:
CREATE [OR REPLACE] VIEW view_name
AS
SELECT查询语句
[WITH READ ONLY CONSTRAINT]
解释:
1、OR REPLACE
:如果视图已经存在,则替换旧视图。
2、WITH READ ONLY
:默认不填的,用户是可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行 insert 操作,或者基表设置了某些约束,这时候插入视图或者修改视图的值,有可能会报错), WITH READ ONLY 说明视图是只读视图,不能通过该视图进行增删改操作。但是在现实开发中,基本上不通过视图对表中的数据进行增删改操作。
例如
create or replace view empview
as
select employee_id emp_id,last_name name,department_name
from employees e,departments d
Where e