Where 平均成绩 >= 60
创建视图v5,查询平均成绩在60分以上的女同学的学号,姓名和平均成绩 Creat view v5 As
Select v41.学号,v41.姓名,v41.平均成绩
From v41 join student on (v41.学号=student.sno) Where avg(grade) >=60 and ssex='女' Select * from v5 (1)基于基本的视图
(2)基于基本表的链接的视图 (3)基于分组的视图(group by) (4)基于视图的视图(视图的列名) (5)基于视图与表连接的视图 视图的受限更新
不是所有的视图都可以执行更新(重要)只有行列子集视图是肯定可以更新的(行列子集视图:保留基本表的部分列和部分行,以及该表的主键) Create view v6 As Select *
From student where ssex = '女' 则v6视图就是行列子集视图,可以更新 视图更新的是视图所对应的基本表内的数据 例:把所有的女同学的年龄减少一岁
Update v6 Set sage = sage-1
例:把所有的女同学的信息删除 Delete from v6
Delete from student where ssex = '女'
创建视图v3,统计每个学生的平均成绩显示结果包含学号,姓名,平均成绩 将每个同学的平均成绩增加3分 Update v3
Set 平均成绩 = 平均成绩+3
视图的更新被禁止了,因为v3视图内有派生类 即经过计算的列(平均成绩) 问题:
举例说明是否所有的视图都可以执行更新操作 视图的删除 Drop view v3 Select *from v41 练习:
1、创建视图v7,查询所有选择了2门以上课程的学生的学号,姓名,选择课程的门数(包含2门课)
Create view v7(学号,姓名,门数) As
Select student.sno'学号',sname'姓名',count(cno)'门数' From sc join student
On (sc.sno=student.sno) Group by student.sno,sname Having count (cno) >=2 )
2、创建视图v8,查询每个同学的平均成绩,按照平均成绩降序排列显示出学号,姓名和平均成绩 create view v8 as
select top 100 student.sno'学号',sname'姓名',avg(grade)'平均成绩' from sc join student on(sc.sno=student.sno) group by student.sno,sname order by avg(grade)desc
以自己的学号建立数据库,包含3个文件,1个主数据文件,一个辅助数据文件,一个日志文件,保存“d:\\RT”文件夹。
在各自的数据库中建立3个表,(x 班级学号)学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分,学时) 选课(学号,课程号,成绩) 建立每个表的主键 完成查询
(1)查询每个学生的基本信息
(2)查询每个学生的选课信息,包括学号,姓名和课程号,课程名及成绩 (3)查询每个学生选择的课程数,包括学号,姓名和课程号
(4)建立视图v1,统计每个学生的平均成绩,包含学号,姓名和平均成绩 (5)建立视图v2,将平均成绩高于80的同学的学号,姓名和平均成绩显示出来
(6)将每个同学的年龄增加一岁 (7)删除没有成绩的学生的选课信息
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库使用sql语言创建数据库的方法(6)在线全文阅读。
相关推荐: