数据库-视图归纳
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是视图?
视图是从一个或多个表(或视图)导出的表
使用视图有什么优点?
答: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 专业=’计算机’
删除视图
例如:删除视图CS_XS
DROP VIEW CS_XS
视图和表在以命令方式进行操作时,就是视图名与表名的差别,在操作视图时应用视图名,在操作表时应用表名。
注意:
在使用视图时,要追鱼下列事项
1.只有在当时数据库中才能创建视图,视图的命名必须遵循标识符命名规则,不能与表
同名。
2.不能把规则、默认值或触发器与视图相关联。
在操作表或视图时需谨记**
若SELECT 语句后面出现了聚合函数,则其他的列名要么用聚合函数,要么用在GROUP BY 句子中。
WHERE子句中不能出现聚合函数,如果一定要用到聚合函数来描述条件,则聚合函数用在HAVING子句。出现HAVING子句,在其上面必须出现GROUP BY 子句。