4.5学习总结
数据库原理第四章习题
1.查询 SC 表中的全部数据。
Select * from sc
2.查询计算机系学生的姓名和年龄。
Select sname,sage from student where sdept ='计算机系'
3.查询成绩在70~80分的学生的学号、课程号和成绩。
Select sno,cno,grade from sc where grade between 70 and 80
4.查询计算机系年龄在 18~20 岁的男学生的姓名和年龄。
Select sname,sage from student
where sdept = '计算机系' and sage between 18 and 20
5.查询课程号为“c001”的课程的最高的分数。
Select max(grade) from sc where cno =C001
6,查询计算机系学生的最大年龄和最小年龄。
Select max(saqe) 最大年龄,min(sage) 最小年龄 from student Where sdept='计算机系'
7.统计每个系的学生人数。
Select sdept,count(*) 人数 from student
Group by sdept
8,统计每门课程的选课人数和考试最高分
Select cno,count(*) 选课人数,max(grade) 最高分 from sc
Group by cno
9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果
Selectsno,count(*) 选课门数,sum(grade) from scGroup by sno order by count(*) asc
10.查询总成绩超过 200 分的学生,要求列出学号、总成绩
Select sno,sum(grade) 总成绩 from sc
Group by sno having sum(grade) > 2009
11.查询选修“C002”号课程的学生的姓名和所在系。
Select sname,sdept from student s join sc on s.sno=sc.sno Where cno=C002'
12.查询成绩 80 分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。
Select sname,cno,grade
From student s join sc on s.sno = sc.sno
Where grade>80
Order by grade desc
13.查询哪些课程没有学生选修,要求列出课程号和课程名。
Select c.cno,cname from course c left join sc on c.cno = sc.cnoWhere sc.cno is null
14.查询与Java在同一学期开设的课程的课程名和开课学期。Select cl.cname, cl.semester from course c1
join course c2 on c1.semester = c2.semesterWhere c2.cname = Java and cl.cname != Java
15.查询与李勇年龄相同的学生的姓名、所在系和年龄。
Select sl.sname,s.sdept,sl.sage from student sljoin student s2 on sl.sage = s2.sageWhere s2.sname =李勇 and sl.sname !=李勇
16.用子查询实现如下查询:
(1)查询选修了“C001”号课程的学生的姓名和所在系
Select sname,sdept from student
Where sno in (select sno from sc where cno =C001')
(2)查询数学系成绩80 分以上的学生的学号、姓名、课程号和成绩。
Select sno,sname,cno, grade from student s
Join sc on s.sno = sc.sno
Where sdept =数学系 and sno in (
Select sno from sc where grade > 80)
(3)查询计算机系考试成绩最高的学生的姓名。
Select sname from student s join sc on s.sno = sc.snoWhere sdept=计算机系’ and grade=
(Select max(grade) from sc join student s on s.sno=sc.sno where sdept = ‘计算机系’)
(4)查询年龄最大的男学生的姓名和年龄
Select sname,sage from studentWhere sage = (select max(sage) from student where ssex=男)
and ssex=男
(5)查询数据结构考试成绩最高的学生的姓名、所在系、性别和成绩
Select sname,sdept,ssex,qrade from student s
Join sc on s.sno = sc.sno
Join coursecon c.cno= sc.cno
Where cname=数据结构
And grade in (
Select max(grade) from sc join course c on c.cno=sc.cno Where cname=数据结构’ )
17.查询没有选修 Java 课程的学生的姓名和所在系
Select sname,sdept from student
Where sno not in (
Select sno from sc join course c on c.cno=sc.cnoWhere cname=Java!)
18.查询计算机系没有选课的学生的姓名和性别。
Select snamerssex from studentWhere sdept =’计算机系’ And sno not in (Select sno from sc )
1919.创建一个新表,表名为 test t,其结构为 (COL1,COL 2,COL 3),其中,COL1:整型,允许空值。
COL2:字符型,长度为 10,不允许空值。COL3:字符型,长度为 10,允许空值。试写出按行插入如下数据的语句 (空白处表示空值)。
Create table test t(
COLl int,
COL2 char(10)not null,
COL3 char(10))
Insert into test t(COL2) values('B1')
Insert into test t(COL1,COL2) values(1,'B2')
Insert into test t values(2B3',NULL)
20.删除考试成绩低于 50 分的学生的选课记录。
Delete from sc where grade < 50
21.删除没人选的课程的基本信息。
Delete from course where cno not in(
Select cno from course)
22.删除计算机系Java 成绩不及格学生的 Java选课记录。Delete from sc
From sc join student s on s.sno = sc.sno
Join coursec on c.cno = sc.cno
where cname =Java' and grade < 60
and sdept=’计算机系’
23.将第2学期开设的所有课程的学分增加 2 分。。
Update Course set credit = credit +2
Where semester = 2
24.将Java课程的学分改为3分。
Update course set credit = 3 where cname =Java'
25.将计算机系学生的年龄增加1岁
Update Student set sage= sage +1
where sdept =’计算机系’
26.将信息系学生的“计算机文化学”课程的考试成绩加 5分
Update SC set qrade= grade+5
From student s join sc on ssno = sc.sno
Join coursec on c.cno=sc.cno
Wheresdept=’信息系’ and cname=’计算机文化学’
27.查询每个系年龄大于等于 20 的学生人数,并将结果保存到一个新永久表 Dept_Age 中。
Select sdept,count (*) 人数 into Dept_Age from student Where sage >= 20
Group by sdept
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)