- 16
- 0
- 约7.53千字
- 约 57页
- 2017-12-21 发布于江西
- 举报
关系数据库标准语言SQL_2
建立信息系学生的视图,该视图列包含学生学号、姓名、年龄、性别 CREATE VIEW IS_student AS SELECT sno,sname,sage,ssex FROM student WHERE sdept=‘IS’ 行列子集视图 若一个视图是从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留主码。称为行列子视图。 WITH CHECK OPTION 该语句表示对视图更新(Insert、update、delete)时必须符合子查询中的条件表达式。 通过视图修改行时,WITH CHECK OPTION 可确保提交修改后,仍可通过视图看到修改的数据。 例如:建立信息系学生的视图,并要求进行视图更新时仍保证该视图只有信息系的学生。 create view IS_student as select sno,sname,sage from student where sdept=‘IS’ WITH CHECK OPTION 在多个表上建立视图 必须在创建视图时明确说明视图的各个属性列名 例如:建立信息系选修了1号课程的学生视图 create view IS_S1(sno,sname,grade) as select student.sno,sname,grade from student,sc where student.sno=sc.sno and o=‘1’ 视图的虚拟列 定义视图时可根据实际需要设置一些派生属性列。这些属性列由select子句中的表达式得来的。他们在基本表中不存在称为虚拟列 虚拟列在定义视图时必须明确说明。 例如:定义一个反应学生出生年份的视图 create view S(sno,sbirth) as select sno,2006-sage from student 分组视图 用带有聚集函数和group by子句的查询来定义视图,这种视图称为分组视图。 必须明确定义组成视图的各个属性列名。 例如:创建包含工程号以及工程数量的视图 CREATE VIEW v_count(projectno, countproject) AS SELECT projectno,COUNT(*) FROM workson GROUP BY projectno 更改和删除视图 ALTER VIEW格式同CREATE VIEW类似 DROP VIEW 视图名 〔CASCADE〕 基本表删除后,由该表导出的视图无法使用,但仍有该视图的定义。所以要删除该视图。 CASCADE为级联删除,把该视图和由它导出的所有视图一起删除。 更改视图 下列创建包含全部学生信息的视图All_Students,将视图改为包含全部女生的视图F_Student. create view All_Students(sno,sname,sage,ssex) as select *from student alter view All_Students(sno,sname,sage,ssex) as select * from student where ssex=‘女’ 删除视图: drop view All_Students 查询视图 视图的查询同基本表的查询相同,使用select语句进行查询。 例如:对视图All_Students进行查询 select * from All_Student; 也可以对视图和基本表进行查询 例如:查询信息系选修了1号课程的学生。 (IS_Student是所有信息系学生的视图) select sno,sname from IS_Student as I,SC where I.sno=sc.sno and o=‘1’ 对视图进行查询时是转换成基本表进行的,但仅限于行列子视图。非行列子视图不能直接进行查询。 更新视图 通过视图来插入、删除和修改数据,可以转化为对基本表的更新。 向视图中插入数据 例如: create view All_Students(sno,sname,sage,ssex) as select *from student 当执行insert into all_students values(‘003’,‘rr’,20,‘女’)语句时相当于对表student进行插入。 更改视图中的数据 例如:更改视图中的数据 update all_students set sage=23 where sno=003‘ 相当于对表student中的数据进行了更新 删除视图中的数据 删除学生视图中学号为18的学生记录 delete all_student where sno=18‘ 相当于对表student中的数据进行了删除
原创力文档

文档评论(0)