视图:定义视图 (建立视图、删除视图格式、查询视图、更新视图、视图的作用) |
您所在的位置:网站首页 › 渠道视图编码怎么搞的 › 视图:定义视图 (建立视图、删除视图格式、查询视图、更新视图、视图的作用) |
视图
用途非常广泛:可以用在超市年汇总,年报,月报,季报汇总等,都需要用到视图 视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表,即数据库中只存放视图的定义,即对应的SELECT语句。当用户引用视图时,才根据定义形成虚拟表。 视图一经定义,就可以和基本表一样进行一些操作:查询:删除;在视图之上再定义视图;受限更新。 定义视图 1、建立视图SQL语言使用CREATE VIEW(关键词)命令建立视图,一般格式: CREATE VIEW[([,].…)] AS select statement [WITH CHECK OPTION]; 说明:select statement 可以是任意复杂的SELECT语句,但不允许含有ORDERBY子句和DISTINCT短语。 WITH CHECK OPTION 视图上执行的所有数据修改操作(insert、update、delete)的 行都必须满足视图定义中的谓词条件。 组成视图的属性列要么全部省略,要么全部指定。如果全部省略,视图的属性列由查询中的SELECT子句中的属性列组成。 下面三种情况必须明确指定组成视图的所有列名 (1)某个目标列不是单纯的属性名,而是聚集函数或表达式。 (2)多表连接时选出几个同名列作为视图的字段 (3)需要在视图中为某个列启用新的名字。 例:建立信息系学生视图。 CREATE VIEW IS Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept='IS';如果想使用自己定义视图的列名称(如:学号,姓名,年龄) 即: create view is_student(学号,姓名,年龄) as select sno,sname,sage from student where sdept='IS'; select * from is_student 行列子集视图:若一个视图是从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留了主码。称这类视图为行列子集视图。 例,建立信息系学生的视图,并要求透过该视图进行的更新操作只涉及信息系学生(把谓词加入到更新操作中所以要加上 with check option)。 CREATE VIEWIS Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept='IS WITH CHECK OPTION with check option的作用插入、修改和删除操作:DBMS自动加上Sdept=IS’的条件 例如: 插入操作,DBMS自动检查Sdept属性值是否为'IS’,如果不是,则拒绝该插入操作;如果没有提供Sdept属性值,则自动定义Sdept为IS 例:定义一个反映学生出生年份的视图。 CREATE VIEW BT_S(Sno,Sname,Sbirth) AS SELECT Sno,Sname,2022-Sage FROM Student 例:将学生的学号及他的平均成绩定义为一个视图。 CREATE VIEWS_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno 因为使用了聚合函数,所以视图的列表不能省略 例:建立名称为v1的视图,查询学生的学号,姓名,课程名,成绩。 两种方法: create view v1 as select student.sno,sname,cname,grade from student inner join sc on student.sno = sc.sno inner join course on sc.cno = course.cno 或 create view v1 as select student.sno,sname,cname,grade from student,course,sc where student.sno = sc.sno and sc.cno = course.cno select * from v1 例:建立名称为v2的视图,统计备选课程的课程号,选课人数和平均成绩 create view v2(课程号,选课人数,平均成绩) as select cno,count(*),avg(grade) from sc group by cno select * from v2 2、删除视图格式 DROP VIEW[CASCADE] 说明:。该语句从数据字典中删除指定的视图定义。使用CASCADE才能级联删除该视图和由它导出的视图。 。删除基表时,由该基表导出的所有视图定义都必须显式删除()。 3、查询视图视图定义后,用户就可以像对基本表一样对视图进行查询了。(要求掌握视图消解过程,即把对视图的查询转换为对基本表的查询。) 例:在信息系学生的视图中找出年龄小于20岁的学生。 SELECT Sno,Sage FROM IS Student WHERE Sage |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |