一、实验目的 二、实验内容和要求 (2)查询通信工程系成绩80分以上的学生的学号和姓名。 (3)查询计算机系考试成绩最高的学生的姓名。 (4)查询年龄最大的男生的姓名、所在系和年龄。 2 查询C001课程的考试成绩高于该课程平均成绩的学生的学号和成绩。 3 查询计算机系学生考试成绩高于计算机系学生平均成绩的学生的姓名、考试的课程名和考试成绩。 4 查询VB课程考试成绩高于VB平均成绩的学生姓名和VB成绩。 5 查询没选VB的学生姓名和所在系。 6 查询每个学期学分最高的课程信息,列出开课学期、课程名和学分。 7 查询每门课程考试成绩最高的学生信息,列出课程号、学生姓名和最高成绩,结果按课程号升序排序,不包括没考试的课程。 8 查询计算机系学生姓名、年龄和年龄情况,其中年龄情况为:如果年龄小于18,则显示“偏小”;如果年龄在18-22,则显示“合适”;如果年龄大于22,则显示“偏大”。 9 统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人数及选课情况,其中选课情况为:如果此门课程的选课人数超过100人,则显示“人多”;如果此门课程的选课人数在40~100,则显示“一般”;如果此门课程的选课人数在1~40,则显示“人少”;如果此门课程没有人选,则显示“无人选”。 10 查询计算机系选了VB课程的学生姓名、所在系和考试成绩,并将结果保存到新表VB_Grade中。 11 统计每个系的女生人数,并将结果保存到新表Girls中。 12 创建一个新表,表名为test,其结构为(COL1, COL 2, COL 3),其中, 13.利用第10题建立的VB_Grade表,将信息管理系选了VB课程的学生姓名、所在系和考试成绩插入到VB_Grade表中。 14 将所有选修C001课程的学生的成绩加10分。 15将计算机系所有学生的“计算机文化学”的考试成绩加10分。 16 修改“VB”课程的考试成绩,如果是通信工程系的学生,则增加10分;如果是信息管理系的学生则增加5分,其他系的学生不加分。 17 删除成绩小于50分的学生的选课记录。 18 删除计算机系VB考试成绩不及格学生的VB选课记录。 19 删除“VB”考试成绩最低的学生的VB修课记录。 20 删除没人选的课程的基本信息。 三、实验小结 本文原创Author WangGuodong , 如果对你有帮助,点个赞再走吧,谢谢!
数据库上机(三):数据查询(二)、数据更新
1.掌握SQL嵌套查询和集合查询等各种高级查询的设计方法。
2.熟悉数据库的数据更新操作,能够使用SQL语句对数据库进行数据的插入、修改、删除操作。
(1)查询选了“C001”课程的学生姓名和所在系。select Sname , Sdept from Student where Sno IN( select Sno from SC where Cno = 'C001' ) ;
select Sno, Sname from Student where Sno IN( select DISTINCT Student.Sno from SC, Student where SC.Sno = Student.Sno AND Sdept = '通信工程系' AND Grade > 80
select Sname from Student where Sno =(select Sno from SC where Grade = ( select MAX(Grade) from SC,Student where SC.Sno = Student.Sno AND Sdept = '计算机系' )) ;
select Sname, Sdept, Sage from Student where Ssex = '男' AND Sage =( select Max(Sage) from Student where Ssex = '男' ) ;
select Student.Sno, Grade from Student, SC where Student.Sno = SC.Sno AND Cno = 'C001' AND Grade >( select AVG(Grade) from SC where Cno = 'C001' );
select Sname, Cname, Grade from Student, SC, Course where Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Sdept = '计算机系' AND Grade > ( select AVG(Grade) from SC,Student where SC.Sno = Student.Sno AND Sdept = '计算机系' )
select Sname, Grade from Student, SC, Course where Student.Sno = SC.Sno AND Course.Cno = SC.Cno AND Cname = 'VB' AND Grade >( select AVG(Grade) from Course, SC where SC.Cno = Course.Cno AND Cname = 'VB' ) ;
select DISTINCT Sname, Sdept from Student,SC where Student.Sno = SC.Sno AND Cno <> 'VB' ;
select Semester , Cname, Credit from Course x1 where Credit = ( select MAX(Credit) from Course x2 where x1.Semester = X2.Semester ) ;
select Cno, max(Grade) 最高成绩 from Student, SC where Student.Sno = SC.Sno Group by Cno
select Sname , Sage, case when Sage <18 then '偏小' when Sage between 18 and 22 then '合适' when Sage >22 then '偏大' end 年龄情况 from Student where Sdept = '计算机系'
提示:选课情况列中显示的内容select Course.Cno 课程号, COUNT(Student.Sno) 选课人数, case when COUNT(Student.Sno) > 100 then '人多' when COUNT(Student.Sno) between 40 and 100 then '一般' when COUNT(Student.Sno) < 40 then '人少' else '无人选' end 选课情况 from Course left outer join SC on (SC.Cno = Course.Cno), Student where Student.Sno = SC.Sno group by Course.Cno
select Sname, Sdept, Grade into VBGrade from Student, SC, Course where Student.Sno = SC.Sno And Course.Cno = SC.Cno AND Cname = 'VB' AND Sdept = '计算机系'
select Sdept, COUNT(Sno) 女生人数 into Girls from Student where Ssex = '女' group by Sdept
COL1:整型,允许空值。
COL2:普通编码定长字符型,长度为10,不允许空值。
COL3:普通编码定长字符型,长度为10,允许空值。
试写出按行插入如下数据的语句(空白处表示是空值)。
COL1 COL2 COL3
B1
1 B2 C2
2 B3create table test ( COL1 int NULL, COL2 char(10) NOT NULL, COL3 char(10) NULL ) insert into test values (NULL, 'B1', NULL), (1, 'B2','C2'), (2, 'B3', NULL);
insert into VBGrade(Sname, Sdept, Grade) select Sname, Sdept, Grade from Student, SC, Course where Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Sdept = '信息管理系' AND Cname = 'VB' ;
UPDATE SC SET Grade = Grade + case when Cno = 'C001' then 10 end
UPDATE SC SET Grade = Grade + case when Sdept = '计算机系' AND Cname= '计算机文化学' then 10 end from Course, SC, Student where Course.Cno = SC.Cno AND Student.Sno = SC.Sno ;
UPDATE SC SET Grade = Grade + case when Sdept = '通信工程系' AND Cname = 'VB' then 10 when Sdept = '信息管理系' AND Cname = 'VB'then 5 end from Course,SC, Student where Course.Cno = SC.Cno AND Student.Sno = SC.Sno ;
delete from SC where Grade < 50
delete from SC where Grade < 60 AND Cno IN(select Cno from Course where Cname = 'VB') AND Sno IN (select Sno from Student where Sdept = '计算机系');
delete from SC from SC join Course ON (SC.Cno = Course.Cno) where Cname = 'VB' AND Grade IN( select MIN(Grade) from SC join Course ON (SC.Cno = Course.Cno) where Cname = 'VB' ) ;
delete from course from Course LEFT outer join SC on(SC.Cno = Course.Cno) where SC.Sno is NUll
*没有最终的成功,也没有致命的失败,最可贵的是继续前行的勇气!*
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算