当前位置:文档之家› 数据库原理-视图

数据库原理-视图

数据库原理及应用课程计算机系09级本科班级第10讲

章节名称第3章关系数据库标准语言SQL

3.5数据更新

3.6视图

第4章数据库的安全性

4.1数据为安全性概述

教学目的掌握数据更新语句。(Grasp Data Modification Statements)

掌握视图的定义、查询及更新。(Grasp the Definition、Query and Modification of View)并要灵活应用

理解数据库安全性的含义。(Comprehend the meanings of Database Security)

了解TDI/TCSEC可信计算机系统评测标准。(Know the trusted Computer System Evaluation Criteria of TDI/TCSEC)

教学内容1.数据更新(Updata Insert Delete)2.视图的定义、视图的更新、视图的查询3.数据库安全性概述

教学重点数据更新(Updata Insert Delete)

视图的定义、查询及更新。(Definition、Query and Modification of View)理解数据库安全性

教学难点视图的概念及作用(Concepts and Functions of View)

存取控制、视图机制。(Access Control、View Mechanism)专业术语Table View select

作业

3、4、5

教学方法启发式教学法+实例对比法

教学后记

第3章SQL语言

3.5数据更新(学生讲)

3.6视图

视图的特点:1、虚表,是从一个或几个基本表(或视图)导出的表

2、只存放视图的定义,不会出现数据冗余

3、基表中的数据发生变化,从视图中查询出的数据也随之改变

基于视图的操作:查询、删除、受限更新、定义基于该视图的新视图

一、定义视图

1.建立视图

语句格式:CREATE VIEW<视图名>[(<列名>[,<列名>]…)]

AS<子查询>

[WITH CHECK OPTION];

说明:

●DBMS执行CREATE VIEW语句时只是把视图的定义存入数据字典,并不执行其中的SELECT

语句。在对视图查询时,按视图的定义从基本表中将数据查出。

●组成视图的属性列名:全部省略或全部指定

省略:由子查询中SELECT目标列中的诸字段组成

明确指定视图的所有列名:

(1)某个目标列是集函数或列表达式

(2)目标列为*

(3)多表连接时选出了几个同名列作为视图的字段

(4)需要在视图中为某个列启用新的更合适的名字

2.视图的各种形式

1)行列子集视图

[例1]建立信息系学生的视图。

CREATE VIEW IS_Student

AS

SELECT Sno,Sname,Sage

FROM Student WHERE Sdept='IS';

特点:从单个基本表导出、只是去掉了基本表的某些行和某些列、保留了码

2)有WITH CHECK OPTION选项的视图

透过视图进行增删改操作时,不得破坏视图定义中的谓词条件(即子查询中的条件表达式)

[例2]建立信息系学生的视图,并要求透过该视图进行更新操作只涉及信息系学生。

CREATE VIEW IS_Student

AS

SELECT Sno,Sname,Sage

FROM Student WHERE Sdept='IS'WITH CHECK OPTION;

注:对IS_Student视图的更新操作时,DBMS自动加上Sdept='IS'的条件

3)基于多个基表的视图

[例3]建立信息系选修了1号课程的学生视图。

CREATE VIEW IS_S1(Sno,Sname,Grade)

AS

SELECT Student.Sno,Sname,Grade

FROM Student,SC

WHERE Sdept='IS'AND

Student.Sno=SC.Sno AND

https://www.doczj.com/doc/3d2292471.html,o='1';

4)基于视图的视图

[例4]建立信息系选修了1号课程且成绩在90分以上的学生的视图。

CREATE VIEW IS_S2

AS

SELECT Sno,Sname,Grade

FROM IS_S1

WHERE Grade>=90;

5)带表达式的视图

[例5]定义一个反映学生出生年份的视图。

CREATE VIEW BT_S(Sno,Sname,Sbirth)

AS

SELECT Sno,Sname,2005-Sage

FROM Student

设置一些派生属性列,也称为虚拟列--Sbirth,带表达式的视图必须明确定义组成视图的各个属性列名。

6)建立分组视图

[例6]将学生的学号及他的平均成绩定义为一个视图

CREAT VIEW S_G(Sno,Gavg)

AS

SELECT Sno,AVG(Grade)

FROM SC

GROUP BY Sno;

注:一类不易扩充的视图:以SELECT*方式创建的视图可扩充性差,应尽可能避免[例7]将Student表中所有女生记录定义为一个视图

CREATE VIEW F_Student1(stdnum,name,sex,age,dept)

AS SELECT*

FROM Student

WHERE Ssex='女';

缺点:修改基表Student的结构后,Student表与F_Student1视图的映象关系被破坏,导致该

第3章SQL语言

视图不能正确工作。

CREATE VIEW F_Student2(stdnum,name,sex,age,dept)

AS SELECT Sno,Sname,Ssex,Sage,Sdept

FROM Student

WHERE Ssex='女';

为基表Student增加属性列不会破坏Student表与F_Student2视图的映象关系。

3.删除视图

DROP VIEW<视图名>;-----从数据字典中删除指定的视图定义

说明:由该视图导出的其他视图定义仍在数据字典中,但已不能使用,必须显式删除。

删除基表时,由该基表导出的所有视图定义都必须显式删除

[例8]删除视图IS_S1

DROP VIEW IS_S1;

二、查询视图

从用户角度:查询视图与查询基本表相同

DBMS实现视图查询的方法:视图消解法(View Resolution)

――进行有效性检查,检查查询的表、视图等是否存在。如果存在,则从数据字典中取出视图的定义把视图定义中的子查询与用户的查询结合起来,转换成等价的对基本表的查询执行修正后的查询。

[例1]在信息系学生的视图中找出年龄小于20岁的学生。

SELECT Sno,Sage

FROM IS_Student

WHERE Sage<20;

用视图消解法转换后的查询语句为:SELECT Sno,Sage

FROM Student

WHERE Sdept='IS'AND Sage<20;

[例2]查询信息系选修了1号课程的学生

SELECT Sno,Sname

FROM IS_Student,SC

WHERE IS_Student.Sno=SC.Sno AND https://www.doczj.com/doc/3d2292471.html,o='1';

注:视图消解法的局限

有些情况下,视图消解法不能生成正确查询。采用视图消解法的DBMS会限制这类查询。[例3]在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩

S_G视图定义:

CREATE VIEW S_G(Sno,Gavg) AS

SELECT Sno,AVG(Grade) FROM SC

GROUP BY Sno;SELECT*

FROM S_G WHERE Gavg>=90;

查询转换

错误:

SELECT Sno ,AVG(Grade)

FROM SC

WHERE AVG(Grade)>=90

GROUP BY Sno ;指定WITH CHECK OPTION 子句:DBMS 在更新视图时会进行检查,防止用户通过视图对不属于视图范围内的基本表数据进行更新。

UPDATE IS_Student SET Sname='刘辰'WHERE Sno='95002';[例2]向信息系学生视图IS_S 中插入一个新的学生记录:95029,赵新,20岁

INSERT

INTO IS_Student

VALUES(‘95029’,‘赵新’,20);[例3]删除视图CS_S 中学号为95029的记录

DELETE FROM IS_Student WHERE Sno='95029';注:更新视图的限制

一些视图是不可更新的,因为对这些视图的更新不能唯一地有意义地转换成对相应基本

表的更新

例:视图S_G 为不可更新视图。

CREATE VIEW S_G (Sno ,Gavg)

AS

SELECT Sno ,AVG(Grade)

FROM SC

GROUP BY Sno ;

对于如下更新语句:

UPDATE S_G //不能将其转换成对基本表SC 的更新

SET Gavg=90

WHERE Sno='95001';

正确:SELECT Sno,AVG(Grade)FROM SC GROUP BY Sno HAVING AVG(Grade)>=90;

转换后的语句:UPDATE Student SET Sname='刘辰'WHERE Sno='95002'AND Sdept='IS';

转换为对

基本表的更新:INSERT INTO Student(Sno,Sname,Sage,Sdept)

VALUES('95029','赵新',20,'IS');

转换为对基本表的更新:DELETE FROM Student WHERE Sno='95029'AND Sdept='IS';

第3章SQL语言

视图的作用:

1.视图能够简化用户的操作

当视图中数据不是直接来自基本表时,定义视图能够简化用户的操作

比如:基于多张表连接形成的视图、基于复杂嵌套查询的视图、含导出属性的视图等2.视图使用户能以多种角度看待同一数据

视图机制能使不同用户以不同方式看待同一数据,适应数据库共享的需要

3.视图对重构数据库提供了一定程度的逻辑独立性

例:数据库逻辑结构发生改变

学生关系Student(Sno,Sname,Ssex,Sage,Sdept)

“垂直”地分成两个基本表:

SX(Sno,Sname,Sage)

SY(Sno,Ssex,Sdept)

通过建立一个视图Student:

CREATE VIEW Student(Sno,Sname,Ssex,Sage,Sdept)

AS

SELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.Sdept

FROM SX,SY

WHERE SX.Sno=SY.Sno;

使用户的外模式保持不变,从而对原Student表的

查询程序不必修改

4.视图能够对机密数据提供安全保护

对不同用户定义不同视图,使每个用户只能看到他有权看到的数据

通过WITH CHECK OPTION对关键数据定义操作时间限制

第四章数据库安全性

4.1数据库安全性概述

一、问题的提出:

数据库的一大特点是数据可以共享,但数据共享必然带来数据库的安全性问题

数据库系统中的数据共享不能是无条件的共享

例:军事秘密、国家机密、新产品实验数据、

市场需求分析、市场营销策略、销售计划、

客户档案、医疗档案、银行储蓄数据

数据库中数据的共享是在DBMS统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问允许他存取的数据

·数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一

·什么是数据库的安全性:数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。

·三类计算机系统安全性问题

技术安全类

管理安全类

政策法律类

技术安全:指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。

4.2数据库安全性控制

数据库安全性控制的常用方法:

1、用户标识和鉴定:口令和密码

2、存取控制:权限(Grant,Revoke)、角色

3、视图:Create view视图名[列名表]AS<子查询>

4、审计(由DBA建立):audit op on table

5、密码存储:机密数据

数据库原理视图的创建与使用实验报告

***大学计算机科学与信息学院软件工程系上机实验报告

显示结果: 2、用企业管理器创建、管理视图 (1)创建视图 A、使用企业管理器在表teacher上创建一职称为副教授的教师视图teacherview视图,该视图中需包 括以下信息:姓名,系别,职称,工资。 1)依次进入企业管理器、数据库、XSGL库,并用鼠标右键单击“视图”。 2)在系统弹出的快捷菜单中单击“新建视图”,出现“新建视图”窗口。

B、使用企业管理器在表student、course、sc表上创建一个能查询学生的学号、姓名、课程名及课程成绩的视图,视图名为S_C_VIEW。 (2)修改视图stuview1 将视图studview1的定义修改为从student表中查询出MA系学生的学号,姓名,系别。 (提示:修改视图:在企业管理器中选中视图后->击右键->按设计视图->进行修改) (3)管理视图中的数据 1)查看视图stuview1中的数据。 (提示:用鼠标右键单击要管理的视图stuview1,单击“打开视图”,再单击“返回所有行”。)

2)将视图stuview1中学号为“6”的学生姓名改为“许华”。再重新打开student表观察一下,有什么变化(注:须按按钮“!”进行修改确认。) 3、用T-SQL语言创建、管理视图 (1)创建视图 ①创建一个名为stuview2的水平视图,从数据库XSGL的student表中查询出性别为“男”的所有学生的资 料。并在创建视图时使用with check option。(注:该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。) T-SQL语句为: CREATE VIEW stuview2 AS SELECT* FROM Student WHERE Ssex='男' WITH CHECK OPTION; ②创建一个名为stuview3的视图,能检索出CS系所有女生的学号、选修的课程名及相应的成绩。 T-SQL语句为: CREATE VIEW stuview3 AS SELECT,, FROM SC,Course WHERE= AND IN ( SELECT Sno FROM Student WHERE Sdept='CS'AND Ssex='女'); ③创建一个名为stuview4的视图,能检索出选课学生的学号、姓名、课程名、成绩。

数据库实验报告_数据库的视图和图表的定义及使用

数据库实验报告_数据库的视图和图表的定义及使用贵州大学实验报告 学院:计信学院专业:网络工程班级:101 姓名学号实验组 实验时间 05.30 指导教师罗昊成绩实验项目名称数据库的视图和图表的定义及使用实 验使学生掌握SQL Server中的视图创建向导和图表创建向导的使用方法,加深对视目图和SQL Server图表作用的理解。 的 实本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。开始实验前,必验须进行预习,写出实现所有查询要求的SQL语句。实验过程中,先集中由老师进行具体要要求和注意事项的讲解,然后各自独立在机器上完成实验。实验过程中出现问题,在实求验指导老师帮助下解决。 1、创建视图 假设在图书_读者数据库中已经建立了图书、读者和借阅3个表,它们的结构为: 图书(书号,类别,出版社,作者,书名,定价); 借阅(书号,读者借书证号,借阅日期); 读者(借书证号,姓名,单位,性别,电话) 实如果要在上述3个表的基础上建立一个视图,取名为读者_VIEW,其操作用SQL语验句表示为: 原CREATE VIEW 读者_VIEW AS SELECT 图书.*,借阅.* FROM 图书,借阅,读者理 WHERE 图书.书号=借阅.书号 AND 借阅.读者借书证号=读者.借书证号;

利用SQL Srever 2000中提供的视图创建向导,来创建读者_VIEW视图。 2、查看和修改视图 视图创建好后,就可以利用它进行查询信息了。如果发现视图的结构不能很好地满 足要求,还可以在企业管理器中对它进行修改 3、删除视图 删除视图的方法是:首先要在企业管理器中,将鼠标指针指向数据库中的视图文件 夹,单击右键。在随后出现的弹出菜单中,选择“删除”项,会出现删除视图对话框。 选中欲删除的视图,单击“全部移出”按钮,被选中的视图就会从视图中被移出。 4、创建关联表 假如要在图书_读者数据库中建立一个读者_借阅_图书关系,要求该图表包括图书、 借阅和读者三个表,并包括它们之间的“图书.书号=借阅.书号 AND 借阅.读者借书证 号=读者.借书证号”的外码与被参照表之间的关联,即用关联表实现上述视图的功能。 在企业管理器中通过向导建立数据库关联表。 5、编辑数据库图表 在企业管理器中,展开数据库图表所属的服务器、数据库文件夹、数据库以及关系

数据库系统原理-实验04-数据更新和视图

2011-2012学年第二学期课程实验报告课程名称:数据库系统原理实验名称:数据更新和视图 姓名班级学号 实验台编号同组同学 实验课表现 出勤、表现得分25% 25 实验报告 得分50% 实验总分 操作结果得分25% 25 实验目的 1.学会熟练使用INSERT语句对数据表进行数据插入操作。 2.学会使用UPDATE语句对数据表中的数据进行修改操作。 3.学会使用DELETE语句对数据表中的数据进行删除操作。 4.了解使用视图的目的与好处,掌握视图与基本表的关系。 5.掌握如何使用SQL语句创建、修改、删除和查询视图。 实验内容(实验步骤和实验结果的简单描述,方便同学自己以后阅读) 一、数据的插入、删除和修改 1.创建表XS1(包括学号、姓名、性别和出生日期字段,各个字段属性自定),然后使用SELECT子 句向表XS1中插入多行数据(专业为“电子”的学生数据)。 2.修改XS1表的结构,增加1个“平均成绩”字段,并根据XS_KC表修改每个学生的“平均成绩”。 3.将XS表中计算机专业的学生的总学分增加10分。 4.将XS表中学号为“4102101”的同学的总学分增加4分,备注改为“提前修完一门课程”。 5.将XS_KC表中学号为“4102101”的同学的“计算机基础”课程的成绩增加10分。 6.修改XS1表的结构,增加1个“总学分”字段,并使其值为该学生所学各门功课的学分之和。

7.将XS1表中总学分小于10分的学生数据删除。 8.将XS_KC表中“数据库”课程的所有成绩信息删除。 9.将XS_KC表中其学号在XS表中不存在或其课程号在KC表中不存在的学生的成绩信息删除。 10.删除XS1表中前两个同学的基本信息。 11.删除XS1表中的所有数据。 12.删除XS1表。 二、视图操作 1.使用SQL语句创建视图V_SCORE1,使其显示计算机专业学生的所有基本信息,并保证以后对该 视图的修改都要满足专业为“计算机”这个条件。 2.使用SQL语句创建视图V_SCORE2,显示计算机专业每个学生的学号、姓名、选修的课程名称及 其成绩。 3.使用T-SQL语句修改视图V_SCORE2,使其显示每个专业、每门课程的平均成绩,结果格式为: 专业课程名平均成绩 ……………… 4.通过V_SCORE2查看计算机专业每门课程的平均成绩。 5.通过V_SCORE2查看各个专业所有课程的平均成绩,结果格式为: 专业平均成绩 ………… 6.使用视图V_SCORE1向其基表XS表中输入数据(数据自定),并观察什么样的数据可以插入,什 么样的数据不可以插入,并解释为什么。 7.使用SQL语句删除视图V_SCORE1、V_SCORE2。

实验七 数据库的更新及视图的定义与维护

实验七数据的更新及视图的定义与维护 一.实验目的 1.掌握使用SQL语言向数据库中插入数据、修改数据和删除数据等更新操作 2.掌握视图的定义与维护操作 3. 加深对视图在关系数据库中的作用的理解 二.实验准备 1.装有SQL Server 2005的PC机。 2. 成功创建各数据库、数据库表、并已插入各种数据。 三.实验内容1 1.打开“SQL Server Management Studio”窗口 2.创建学生选课数据库“S_T” 3.在学生选课数据库中完成以下插入数据的操作: (1)将一个新学生元组(学号:200215128;姓名:陈东;性别:男;年龄:18;所在系:IS)插入学生表中; (2)插入一条选课记录(‘200215128’,1); (3)对每一个系,求学生的平均年龄,并把结果存入数据库。 提示:首先在学生-选课数据库中建立一个新表,其中一列存放系名,另一列存放相应的学生平均年龄;然后对student表按系分组求平均年龄,再把系名和 平均年龄存入新表中。 4.在学生选课数据库中完成以下修改数据的操作: (4)将学生200215121的年龄改为22岁; (5)将所有学生的年龄增加一岁; (6)将计算机科学系全体学生的成绩置零; 5.在学生选课数据库中完成以下删除数据的操作: (7)删除学号为200215122的学生记录; (8)删除所有的学生选课记录; (9)删除计算机科学系所有学生的选课记录 四.实验内容2 1. 在学生选课数据库中完成以下创建视图的操作: (1)建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生; (2)建立信息系选修了“1”号课程的学生视图; (3)建立信息系选修了“1”号课程且成绩在90分以上的学生视图; (4)定义一个反映学生出生年份的视图; (5)将学生的学号及他的平均成绩定义为一个视图; (6)将Student表中所有女生记录定义为一个视图; 2. 在学生选课数据库中完成以下删除视图的操作: (7)选择一个您所建的视图进行删除; 3. 在学生选课数据库中完成以下查询视图的操作: (8)在信息系学生的视图中找出年龄小于20岁的学生; (9)查询选修了1号课程的信息系学生;

数据库-视图归纳

什么是视图? 视图是从一个或多个表(或视图)导出的表 使用视图有什么优点? 答:1.为用户集中数据,简化用户的数据查询和处理 2.屏蔽数据库的复杂性 3.简化用户权限的管理 4.便于数据的共享 5.可以重新组织数据以便输出到其他应用程序中 视同和表有什么区别? 视图是一张虚表,视图所对应的数据不进行实际存储,不占用存储空间,表是一张实表,表所对应的数据进行实际存储,占用存储空间 视图可以用于界面方式创建和命令方式创建,本章着重于命令方式创建命令方式创建视图格式如下: CREATE VIEW 视图名【视图列名1,视图列名2】 AS 查询语句 视图和表一样可以用作查询,更新,修改和删除 例如 查找平均成绩在80分以上学生的学号和平均成绩 CREATE VIEW CS_CJ (学号,平均成绩) AS SELECT 学号,AVG(成绩) FROM CJB GROUP BY 学号

SELECT 学号,平均成绩 FROM CS_CJ WHERE 平均成绩>=80 更新视图的作用? 通用更新视图(包括插入、修改和删除)数据可以修改基本数据;但并不是所有的视图都可以更新,只有对满足可更新条件的视图,才能进行更新。 哪些视图可更新 1.创建视图的SELECT语句中没有聚合函数,且没有TOP、GROUP BY、UNION子句 及DISTINCT关键字 2.创建视图的SELECT 语句中不包括从基本表列通过计算所得的列 3.创建视图的SELECT语句的FROM句子中至少要包含一个基本表 例如向CS_XS视图中插入以下记录 (‘081115’,’刘明仪’,1,’1998-3-2’,’计算机’,50,NULL) INSERT INTO CS_XS VALUES (‘081115’,’刘明仪’,1,’1998-3-2’,’计算机’,50,NULL) 例如:将CS_KC视图中学号为081101的学生的101号课程成绩改为80 UPDATE CS_KC SET 成绩=80 WHERE 学号=’081101’ AND 课程号=’101’ 修改视图,举例说明 例:将CS_SX视图修改为只包含计算机专业学生的学号、姓名和总学分 ALTER VIEW CS_XS AS SELECT 学号,姓名,总学分 FROM XSB WHERE 专业=’计算机’

数据库视图的创建

实验五创建视图 实验目的: ①进一步熟悉视图的基本功能; ②熟练掌握视图的创建以及基本的操作; ③熟练sql server的使用方法。 实验步骤: ①建立信息系学生的视图 createview IS_Student asselect Sno,Sname,sage from Student where Sdept='I S' 省略了视图IS_Student的列名,则默认由select中的Sno,Sname,sage组成; 执行结果: select * from IS_Student ②建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学 生 createview IS_Student1asselect Sno,Sname,sage from Student where Sdept='I S'withcheckoption 执行结果与①的结果相同。 ③建立信息系选修了1号课程的学生的视图 createview IS_S1(Sno,Sname,Grade)asselect Student.Sno,Sname,Grade from Student,SC where Sdept='IS'AND student.Sno=SC.Sno and https://www.doczj.com/doc/3d2292471.html,o=1 执行结果:SELECT*FROM IS_S1

④建立信息系选修了1号课程且成绩在90分以上的学生的视图 createview IS_S2asselect Sno,Sname,Grade from IS_S1where grade>=90 执行结果:SELECT*FROM IS_S2 ⑤定义一个反映学生出生年月的视图。 createview BT_S(Sno,Sname,Sbirth)asselect Sno,Sname,2012-Sage from Stu dent 执行结果如下:

实验四数据库更新,视图和数据控制

嘉应学院计算机学院 一、实验目的 通过实验掌握数据库更新的方法和完整性约束的概念以及视图建立和操作方法。掌握SQL SERVER的数据控制和安全性设计的基本方法, 存储过程的建立和使用方法。 二、实验原理 1、插入数据 INSERT INTO<表名〉[<属性列1〉[,<属性列2〉...)] VALUES(<常量1>[,<常量2>]...) 2、修改数据 UPDATE <表名> SET<列名〉=<表达式〉[,<列名〉=<表达式〉]... [WHERE<条件〉] 3. 删除数据 DELETE FROM<表名> [WHERE<条件> 4. 建立视图 CREATE VIEW <视图名〉[(列名〉[,(列名〉]... AS <子查询〉 [WITH CHECK OPTION]

5. 授权 GRANT<权限>[,<权限>]... ON<对象类型〉<对象名>] TO<用户> [,<用户>]... [WITH GRANT OPTION] 三、实验环境 操作系统:Windows Server 2003 、Windows 7 编译环境:SQL Server Enterprise Manager 数据库管理系统:Microsoft SQL Server 2005 四、实验步骤及内容 (一)数据库更新 1. 在school数据库中,确保表之间已经建立关系,用企业管理器建立数据库的Diagrams

2. 在course 表中删除cno=1的记录,有什么结果?未删除前course表的内容如下: 执行删除操作后,结果如下:

3. 在Diagrams中编辑course表和 sc表之间的关系,选择cascade delete related records 执行级联删除操作前,三个表之间的关系如图:

SQL server创建视图

什么是视图 大家都知道,我们国家现在“神七”上天了。从美国的月球登月开始,人类上天不再是神话。听说,在美国,你只要出几十万美元,您就可以上一次月球进行太空旅行,所以,我们相信:在不久的将来,上天旅行将走进我们百姓的生活,那是一件多么新鲜神奇的事情啊。好多美国人上天后,他们用望远镜观看我们的地球,结果看到的地球形状各不相同。有的说象绿色的橘子,有的说象白色的大鸭梨,有的说象蓝色的大西瓜。这是为什么呢?你肯定会说:那是因为从不同的角度(视角),看到的不同形状而已。那么,从不同的视角,将看到不同的“图形”,这就是我们马上讲到的视图。我们的学员信息也是如此:对于学员的信息和成绩,老师比较关心学员成绩以及是否参加考试,包括姓名、学号、笔试、机试、是否通过等。班主任则比较关心学生档案,包括姓名、学号、性别和年龄。 其实,视图就是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上 ?视图中并不存放数据,而是存放在视图所引用的原始表(基表)中 ?同一张原始表,根据不同用户的不同需求,可以创建不同的视图 视图的用途 –筛选表中的行 –防止未经许可的用户访问敏感数据 –降低数据库的复杂程度 –将多个物理数据库抽象为一个逻辑数据库 使用视图可以给用户和开发人员带来很多好处。具体为: 1.对最终用户的好处 (1)结果更容易理解 创建视图时,可以将列名改为有意义的名称,使用户更容易理解列所代表的内容。在视图中修改列名不会影响基表的列名。 (2)获得数据更容易 很多人对SQL不太了解,因此对他们来说创建对多个表的复杂查询很困难。可以通过创建视图来方便用户访问多个表中的数据。 2.对开发人员的好处 (1)限制数据检索更容易 开发人员有时需要隐藏某些行或列中的信息。通过使用视图,用户可以灵活地访问他们需要的数据,同时保证同一个表或其他表中的其他数据的安全性。要实现这一目标,可以在创建视图时将要对用户保密的列排除在外。 (2)维护应用程序更方便

SQL实验三--数据的更新操作和视图-实验报告

SQL实验三--数据的更新操作和视图-实验报告

实验三数据的更新操作和视图 本实验需要2学时。 一、实验目的 1、掌握视图的创建、修改和删除操作。 2、掌握数据库数据更新(增加、修改、删除)操作。 二、实验内容和步骤 1、视图 (1)建立名为UV_SC的视图。该视图可以让我们看到每个学生的姓名、选修课程名和成绩。 (2)利用UV_SC视图,查看平均成绩在80分以上的学生姓名。 (3)建立名为UV_Course的视图,该视图显示每门课的课程名和选修该课程的学生人数。 (4)修改视图UV_Course,在视图中增加一列,显示选修该课程所有学生的平均成绩。 (5)建立名为UV_IS_Depart的视图。该视图可以用来查看“信息系”的学生的学号、姓名、年龄和系名。并保证对该视图的修改满足系名为信息系的条件。 (6)建立名为UV_Student的加密视图。该

视图可以用来查看每个学生选修的课程门数和平均成绩。 (7)利用UV_Student视图,查询平均成绩在80分以上的学生学号。 (8)能否利用视图UV_Student,修改某个学生的平均成绩? (9)删除视图UV_Student。 2、数据更新 (1)向STUDENT表增加如下记录:Sno Sname Ssex Sage Saddress Sdept 95011 王一 鸣男20 福州市计算机 系 (2)将学号’95011’,成绩80,以及课程表中的所有课程号插入到SC表中。 (3)建立与表STUDENT同结构的空表STUD。然后利用INSERT命令把表STUDENT 中年龄大于19的学生记录添加到表STUD。(注意:可以使用select into语句实现同结构空表的创建,再使用insert命令插入记录;或者使用单条select into语句实现等同的功能) (4)为“95002”的学生增加选修“操作系

数据库表视图的创建与维护实验

北京邮电大学 实验报告 课程名称数据库系统原理 实验名称数据库表/视图的创建与维护实验 计算机学院网络工程11班 薛玥 指导教师吴起凡 成绩 2014-3-27

实验目的 1.掌握将E-R图转换为数据库逻辑模式(关系表)的方法。 2.通过进行数据库表的建立操作,熟悉并掌握在Microsoft SQL Server数据库中建立表的方法,理解关系数据库表的结构,巩固SQL标准中关于数据库表的建立语句。 3.通过对Microsoft SQL Server数据库中建立、维护视图的实验,熟悉Microsoft SQL Server数据库中建立和维护视图的方法,理解和掌握视图的概念。 4.掌握从Excel表向Microsoft SQL Server关系数据库导入数据的方法,利用实 际数据建立GSM网络配置数据库。 ·实验环境 采用Microsfot SQL Server2005数据库管理系统作为实验平台; 个人独立完成此实验。 ·实验内容 将本次试验大致分为一下几个内容: 1.根据上次《GSM移动通信网络配置数据库》相关背景资料及上次试验对于GSM网络各个实体间的关系,将数据需求转化为E-R图; 2.将E-R图转化为逻辑模式,在转化的时候要注意表结构及属性,以及一些primary key的选择,以及键之间的约束关系; 3.接下来,将将逻辑模式转化为物理模式。转化成物理模型的方式主要有以下 三种,1)写好create table、create view等命令的SQL脚本,利用脚本文件一次性生成这些表和视图,然后在Microsoft SQL Server中打开SQL脚本文件并执行;2)把创建表和视图的脚本语句分成一条一条SQL语句执行;3)使用SQL Server所提供的功能,自动创建表和视图。以上说的这三种方法,我都做了尝试,会在后面详细阐述; 3.视图定义: 1)创建单表上的视图: a.在表“小区基本信息”上创建“LAC号为14121的小区基本位置信息” 视图CellInfo,属性包括(CellID、所属地区、LAC号、经度、纬度)。 b.在表“20个小区一周分钟级话务数据”上创建“全速率话务量平均值大于23的小区话务量数据信息”视图CellCallInfo,属性包括(CellID、平均半速率话务量率、平均拥塞率)。 2)创建多表上的视图:

数据库原理-视图

数据库原理及应用课程计算机系09级本科班级第10讲 章节名称第3章关系数据库标准语言SQL 3.5数据更新 3.6视图 第4章数据库的安全性 4.1数据为安全性概述 教学目的掌握数据更新语句。(Grasp Data Modification Statements) 掌握视图的定义、查询及更新。(Grasp the Definition、Query and Modification of View)并要灵活应用 理解数据库安全性的含义。(Comprehend the meanings of Database Security) 了解TDI/TCSEC可信计算机系统评测标准。(Know the trusted Computer System Evaluation Criteria of TDI/TCSEC) 教学内容1.数据更新(Updata Insert Delete)2.视图的定义、视图的更新、视图的查询3.数据库安全性概述 教学重点数据更新(Updata Insert Delete) 视图的定义、查询及更新。(Definition、Query and Modification of View)理解数据库安全性 教学难点视图的概念及作用(Concepts and Functions of View) 存取控制、视图机制。(Access Control、View Mechanism)专业术语Table View select 作业 3、4、5 教学方法启发式教学法+实例对比法 教学后记

第3章SQL语言 3.5数据更新(学生讲) 3.6视图 视图的特点:1、虚表,是从一个或几个基本表(或视图)导出的表 2、只存放视图的定义,不会出现数据冗余 3、基表中的数据发生变化,从视图中查询出的数据也随之改变 基于视图的操作:查询、删除、受限更新、定义基于该视图的新视图 一、定义视图 1.建立视图 语句格式:CREATE VIEW<视图名>[(<列名>[,<列名>]…)] AS<子查询> [WITH CHECK OPTION]; 说明: ●DBMS执行CREATE VIEW语句时只是把视图的定义存入数据字典,并不执行其中的SELECT 语句。在对视图查询时,按视图的定义从基本表中将数据查出。 ●组成视图的属性列名:全部省略或全部指定 省略:由子查询中SELECT目标列中的诸字段组成 明确指定视图的所有列名: (1)某个目标列是集函数或列表达式 (2)目标列为* (3)多表连接时选出了几个同名列作为视图的字段 (4)需要在视图中为某个列启用新的更合适的名字 2.视图的各种形式 1)行列子集视图 [例1]建立信息系学生的视图。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept='IS'; 特点:从单个基本表导出、只是去掉了基本表的某些行和某些列、保留了码 2)有WITH CHECK OPTION选项的视图 透过视图进行增删改操作时,不得破坏视图定义中的谓词条件(即子查询中的条件表达式) [例2]建立信息系学生的视图,并要求透过该视图进行更新操作只涉及信息系学生。 CREATE VIEW IS_Student AS

数据库的查询和视图

实验四数据库的查询和视图 T4.1 数据库的查询 1.目的与要求 (1)掌握select语句的基本语法; (2)掌握子查询的表示 (3)掌握连接查询的表示 (4)掌握select语句的group by子句的作用和使用方法 (5)掌握select语句的order by子句的作用和使用方法 2 实验准备 (1)了解SELECT语句的基本语法格式; (2)了解SELECT语句的执行方法; (3)了解子查询的表示方法; (4)了解连接查询的表示; (5)了解SELECT语句的GROUPBY子句的作用和使用方法; (6)了解SELECT语句的ORDER BY子句的作用; 3实验内容 SELECT语句的基本使用。 ①对于实验2给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在查询分析器中输入如下语句并执行: USEYGGL GO SELECT* FROMEmployees 【思考与练习】 用SELECT语句查询Departments和Salary表中所有的数据信息。

用SELECT语句查询Employees表中每个雇员的地址和电话。 【思考与练习】 a.用SELECT语句查询Deparments和Salary表的一列或若干列。 b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。 c.查询EmployeeID为000001的雇员的地址和电话。

【思考与练习】 a.查询月收入高于2000元的员工号码。 b.查询1970年以后出生的员工的姓名和住址。 c.查询所有财务部的员工的号码和姓名。 d.查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。 【思考与练习】使用SELECT语句进行简单的计算。 ⑦获得员工总数。

实验七视图及SQL数据更新语句

实验七视图及SQL数据更新语句 一、实验目的 1.掌握视图的概念; 2.熟练掌握视图的生成及操作语句; 3.熟练掌握SQL数据更新语句; 二、实验内容 给定一个练习数据库和相应的练习题,要求上机完成,并验证结果 实验基础知识提要 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。 创建视图的基本语句为: CREATE VIEW view_name [ ( column [ ,...n ] ) ] AS select_statement [ WITH CHECK OPTION ] view_name 是视图的名称。视图名称必须符合标识符规则。可以选择是否指定视图所有者名称。 column 是视图中的列名。只有在下列情况下,才必须命名CREATE VIEW 中的列:当列是从算术表达式、函数或常量派生的,两个或更多的列可能会具有相同的名称(通常是因为联接),视图中的某列被赋予了不同于派生来源列的名称。还可以在SELECT 语句中指派列名。 如果未指定column,则视图列将获得与SELECT 语句中的列相同的名称。 select_statement 是定义视图的SELECT 语句。该语句可以使用多个表或其它视图。若要从创建视图的SELECT 子句所引用的对象中选择,必须具有适当的权限。 WITH CHECK OPTION 强制视图上执行的所有数据修改语句都必须符合由select_statement 设置的准则。通过视图修改行时,WITH CHECK OPTION 可确保提交修改后,仍可通过视图看到修改的数据。

数据库实验数据更新和视图的建立与使用

实验五 实验名称:数据更新和视图的建立与使用 一、实验目的 1.熟练使用INSERT/DELETE/UPDATE语句进行表的更新操作。 2. 理解视图的定义、视图的优点与视图的工作原理。掌握在企业管理器和查询分析器中创建、修改及删除视图。能够熟练掌握利用视图向表中插入、删除和修改数据。 二、实验原理 1.数据更新操作只能针对一个表进行,即每次只能在一个表中插入、删除和修改数据。用INSERT语句可以通过使用V ALUES关键字一次只向一个表插入一条记录,也可以通过子查询向一个表中插入若干条记录;当使用DELETE和UPDATE语句实现表的删除和更改时,若题目中涉及多个表的信息,可以使用子查询来挑选出部分数据,以作为删除或更改的条件,也可以在语句中用FROM 子句给出题目中涉及的所有表,而在WHERE子句中给出多个表之间的连接条件。 2. 利用CREATE VIEW、ALTER VIEW 、DROP VIEW语句创建、修改及删除视图。由于视图是虚表,通过视图向表中添加数据时必须满足一定的条件。如果视图引用了多个数据表,那么在通过视图向数据表中添加数据时,这个语句只能指定同一个表中的字段。如果通过一个引用了多个数据表的视图向这些数据表中添加数据时,必须书写多个INSERT语句。通过使用多个表的视图对数据表进行更新也需要书写多个UPDATE语句,另外适用于INSERT操作的许多限制同UPDATE操作。使用DELETE语句可以通过视图将数据表中的数据删除。但如果视图应用了两个或两个以上的数据表,则不允许删除视图中的数据。另外,通过视图删除的记录,不能违背视图定义的WHERE子句中的条件限制。 三、实验设备 安装有SQL SERVER 2005的计算机。 四、实验内容 凡是能用多种方法实现的,请用多种方法实现。 1、为各表添加若干条记录,必须符合实验二中设定的各种约束。

数据库更新及视图

课程实验报告 课程名称数据库系统概论班级XXXXX 实验日期XXXXX 姓名XXX 学号XXXXX 实验成绩 实验名称实验2:数据更新及视图 实验目的及要求1.掌握数据更新语句;2.掌握视图的使用。 实验环境操作系统:Windows DBMS:SQL Server 2005 实验内容商品(商品号字符(3),商品名字符(20),单价浮点型,商品类别字符(5),供应商字符(20)); 顾客(顾客号字符(3),姓名字符(10),住址字符(20)); 购买(顾客号字符(3),商品号字符(3),购买数量整型); 用SQL语句实现如下题目: 1.创建上述3个表。 2.往表中插入数据: 商品:M01,佳洁士,8.00,牙膏,宝洁; M02,高露洁,6.50,牙膏,高露洁; M03,黑人,7.50,牙膏,联合利华; M04,舒客,6.2,牙膏,舒客; M05,狮王,12.2,牙膏,狮王; 顾客:C01,Dennis,海淀; C02,John,朝阳; 购买:C01,M01,13;C01,M05,12; C01,M04,22;C02,M02,15; 3.将所有的牙膏商品单价增加20%。 4.将宝洁供应商改为P&G。 5.删除所有卖出总数量少于20个的商品信息,不包括从没有卖出的商品。6.删除没有购买记录的商品。 7.创建顾客号,商品号,商品名称,单价,购买数量的视图。 调试过程 及实验结 果 2:往表中插入数据:

3:将所有的牙膏商品单价增加20%: 4:将宝洁供应商改为P&G: 5:删除所有卖出总数量少于20个的商品信息,不包括从没有卖出的商品: 6:删除没有购买记录的商品: 7:创建顾客号,商品号,商品名称,单价,购买数量的视图:

数据库查询视图

第二章数据的查询的视图 实验指导书 实验目标: 查询语句的编写和视图的创建。 第一部分练习指导(50分钟) 联系1:测试ROWID和ROWNUM伪列 问题: 用户表没有建立主键约束而插入了重复的记录,为了解决数据冗余问题,必须删除表中的重复记录,用户应用程序之、只关心查询结果集中的一部分,需要限制查询返回的行数。 分析: Oracle 的RowID伪列可以唯一地标识表中的一行,可以利用ROWID删除表中重复的记录。ROWNUM伪列返回查询结果集中行的序号,可以通过ROWNUM限制查询返回的行数。 解决方案: (1)启动 SQL *Plus,并登录到数据库。 (3)测试ROWID伪列。 可以看到每个行的ROWID值都是不同的。现在删除第三行。

在次执行查询语句,就可以看到第三条记录已经被删除。由此可见,即使不定义主键,Oracle也可以唯一区分表中的行,因为ROWID可以当作表的主键。(4)测试ROWNUM伪列。 上述命令返回两条记录。可以看出,使用ROWNUM 伪列可以实现类似SQL SERVER 中的TOP N功能。 练习2:使用select语句创建表 问题: 假如scott用户下的表emp要做比较大的调整。Select语句可以与其它表中的重要的记录做一个副本。 分析: Select 语句可检索存储在数据库中的数据。Select 语句还可以与其它的DDL 和DML语句一起使用来执行各种操作,如创建表、插入记录和指定列的别名等。 解决方案: (1)创建表emp表的副本,但不包含表中的记录。 (2)使用select 语句选择记录并插入到另一个表中。

练习3: 使用子查询 问题 编写sql语句,查询出工资比blake高的员工的信息。 解决方案 (1)先查询出blake的工资。 (2)利用where条件筛选出比blake的工资高的员工的信息。 (3)在sql提示符下输入一下命令,查看结果。 select * from emp where sal > (select sal from emp where ename='BLAKE'); 第二部分练习(50分钟) 1.使用上一次练习中创建的三个表,查询出所有数学考试成绩都在60分以上的学生的名字和所在班级。 分析: (1)在成绩表中查询出数学成绩在60分以上的学生。 (2)利用where语句在学生信息表中筛选出这些学上的信息。 2.利用学生信息表创建一个视图,只显示学生的姓名和年龄。 3.创建一个视图,显示学生的姓名和平均成绩,并按照分数升序排列。 提示:使用 A VG 函数和 ORDER BY 子句. 4. 编写语句以显示vendor_master表中vencode,venname 和venadd列,如果veradd列问空,则该语句显示venadd1,否则显示veradd2. 提示:使用NVL2函数 第三部分作业 1.按照第二部分练习1的要求创建一个视图。 2.编写一个sql语句,查询出所有平均分数在70和80分之间的学生信息。 3.编写一个sql语句,查询出某一个班所有课程的平均分数。 编写语句以显示order_master表中的订单的orderno,同时要显示系统日期与该订单的del_date的月份数差值,将该值四舍五入显示月份数。

data数据库实验五视图创建与使用

实验五视图的创建与使用 一、实验目的 (1)理解视图的概念。 (2)掌握创建视图、测试、加密视图的方法。 (3)掌握更改视图的方法。 (4)掌握用视图管理数据的方法。 二、实验内容 1.创建视图 (1)创建一个名为stuview2的水平视图,从数据库Student_info的Student表中查询出性别为“男”的所有学生的资料。并在创建视图时使用with check option。(注:该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。) create view stuview2 as select Sno,Sname,Sex,Birth,Classno,Entrance_date,Homeaddr,Sdept,Postcode from Student_20103322 where Sex='男' with check option

(2)创建一个名为stuview3的投影视图,从数据库Student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时,并在创建时对该视图加密。(提示:用with ENCRYPTION关键子句) create view stuview3 with ENCRYPTION as select Cno,Cname,Total_perior from Course_20103322 where Credit>3 with check option

(3)创建一个名为stuview4的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。 create view stuview4 as select Student_20103322.Sno,Cno,Grade from Student_20103322,SC_20103322 where Student_20103322.Sno=SC_20103322.Sno and Classno='051' and Sex='女'

视图和表的区别

1.p226页sql什么人来备份数据库? 答:SQLServer备份数据库是动态的,在进行数据库备份时,sql server允许其他用户继续对数据库进行操作。执行备份操作的用户必须拥有对数据库备份的权限许可,sql server只允许系统管理员、数据库所有者和数据库备份执行者备份数据库。 2.p232 数据库还原的概念是指将数据库备份加载纯数据的过程 答:数据库还原的概念是指将数据库加载到系统中的过程。 3.p3 sql提供的系统数据库和用户数据库 答:sql提供的系统数据库和用户数据库。 4.p93 数据安全保护的四个层次 操作系统的安全性 SQL Server2008的登录安全性 数据库的使用安全性 数据库对象的使用安全性5.四个系统数据库 答:master、model、msdb、resource。 1. master数据库Master数据库用于记录SQL Server实例的所有系统级信息,是SQL Server的核心,不能对其进行直接修改,应当对其定期进行备份,如果Master数据库变得不可用,那么SQL Server数据库引擎将无法启动。 2. model数据库model数据库用作SQL Server 2008实例上创建的所有数据库的模板,若对model数据库进行修改,都将应用于以后创建的用户数据库中。。 3. msdb数据库 msdb数据库用于SQL Server 2008代理计划警报和作业,是SQL Server中的一个W indows服务。 4. resource数据库 resource数据库是一个只读和隐藏的数据库,它包含了SQL Server 2008中的所有系统对象,对于resource数据库是唯一没有显示在其中的系统数据库,这是因为它在sys框架中存在。 6.两种身份验证 1.Windows 身份验证模式 当使用Windows身份验证连接到SQL Server时,Microsoft Windows将完全负责对客户端进行身份验证。 在这种情况下,将按其Windows用户账户来识别客户端。 当用户通过Windows用户账户进行连接时,SQL Server使用Windows操作系统中的信息验证账户名和密码,这是SQL Server默认的身份验证模式 ,比混合模式安全的多。

数据库简答题答案

一、简答题 1、简述数据库系统的特点。(P9) 答:数据结构化;数据的共享性高,冗余度低,易扩充;数据独立性高; 数据由DBMS统一管理和控制。 2、数据库管理系统的主要功能有哪些?(P11) (1)数据的安全性保护 (2)数据的完整性保护 (3)并发控制 (4)数据库恢复 3、什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什 么数据库系统具有数据与程序的独立性?(P10) 物理独立性:是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。 逻辑独立性:是指用户的应用程序与数据的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。 为什么:数据独立性是由DBMS的二级映像功能来保证的(外模式/模式映像,模式/内模式映像),这两层映像机制保证了数据库系统中数据的逻辑独立性和物理独立性。 4、试述数据库系统的组成。(P5) 数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员。 5、简述文件系统与数据库系统的区别和联系。(P6) 区别: 数据的管理者:文件系统;数据库管理系统 数据面向的对象:某一应用;现实世界 数据的共享程度:共享性差,冗余度大;共享性高,冗余度小 数据的独立性:独立性差;具有高度的物理独立性和逻辑独立性 数据的结构化:记录内有结构,整体无结构;整体结构化,数据模型描述 数据的控制能力:应用程序自己控制;由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力 联系: (1)均为数据组织的管理技术 (2)均由数据管理软件管理数据,程序与数据之间用存取方法进行转换

(3)数据库系统是在文件系统的基础上发展而来的 6、DBA的职责是什么?(P35) (1)决定数据库中的信息内容和结构 (2)决定数据库中的存储结构和存取策略 (3)定义数据库的安全性要求和完整性约束条件 (4)监控数据的使用和运行 (5)数据库的改进和重组重构 7、什么是基本表?什么是视图?两者的区别和联系是什么?(P81) 基表:是本身独立存在的表,在SQL中一个关系就对应一个基表。 视图:是从一个或几个基表导出的表。 区别:基表是实际存在保存数据的实体,一个(或多个)基表对应一个存储文件;视图本身并不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据,视图是一个虚表。 联系:视图是在基表之上建立的,它的结构和内容都来自基表;一个视图可以对应多个基表,一个基表也可以建立多个视图,视图是基表在逻辑意义建立的新关系。 8、简述视图的优点。(P125) (1)视图能够简化用户的操作 (2)视图使用户能以多种角度看待同一数据 (3)视图对重构数据库提供了一定程度的逻辑独立性 (4)视图能够对机密数据提供安全保护 (5)适当的利用视图可以更清晰的表达查询 9、所有的视图是否都可以更新? 哪类视图是可以更新的,哪类视图是不可更新的? 不是。 一般地,行列子集视图是可更新的。 不可更新的视图: (1)若视图是由两个以上基表导出的,此视图不允许更新 (2)若视图的字段来自字段表达式或常数,则不允许对此视图执行INSERT和UPDATE操作,但允许DELETE操作 (3)若视图的字段来自聚集函数,则此视图不允许更新 (4)若视图定义中含有GROUP BY子句,则此视图不允许更新 (5)若视图定义中含有DISTINCT短语,则此视图不允许更新

相关主题
文本预览
相关文档 最新文档