SQL查询练习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

--练习题01:查找出已修学分低于20分的学生的姓名、性别和班主任。

select 姓名,性别,班主任 from 学生,班级 where 学生.班级编号=班级.班级编号 and 已修学分<20

--练习题02:查找出学生“王林”的班主任。

select 班主任 from 班级 where 班级编号 in(select 班级编号 from 学生 where 姓名='王林')

--练习题03:查找出班主任“刘成河”班的全部男生的信息。

select 学生.* from 学生,班级 where 性别='男' and 班主任='刘成河' and 学生.班级编号=班级.班级编号

--练习题04:查找出课程“中国历史”考试及格的全部学生的学号、姓名、班级名称和分数。Select 学生.学号,姓名,班级名称,分数 from 学生,成绩,课程,班级 where 课程名称='中国历史'

and 课程.课程编号=成绩.课程编号 and 学生.学号=成绩.学号 and 学生.班级编号=班级.班级编号 and 分数>=60

--练习题05:查找出全部同学的所有考试的姓名、课程名称、分数,查找结果的格式如下:Select 姓名,课程名称,分数 from 学生,课程,成绩 where 课程.课程编号=成绩.课程编号and 学生.学号=成绩.学号

--练习题01:查找出班主任“刘成河”班的全部男生的信息。

Select*from 学生 where 性别='男' and 班级编号 in(select 班级编号 from 班级 where 班主任='刘成河')

--练习题02:查找出考试全及格的课程名称。

Select 课程名称 from 课程 where 课程编号 not in (select 课程编号 from 成绩 where 分数<60)

select 课程名称

from 课程

where not exists

(select *

from 成绩

where 成绩.课程编号=课程.课程编号 and 分数<60)

--练习题03:查找出所有学生的考试都及格的班级,并排除那些没有学生的班级。

select 班级名称

from 班级

where 总人数>0 and 班级编号 not in

(select 班级编号

from 学生

where 学号 in

(select 学号

from 成绩

where 分数<60))

--练习题04:使用多表查询实现例1。

Select 学生.学号,姓名 from 学生,成绩 where 学生.学号=成绩.学号 and 分数>=95

--练习题05:使用多表查询实现例2。

Select 学生.学号,姓名 from 学生,成绩,课程 where 学生.学号=成绩.学号

and 成绩.课程编号=课程.课程编号 and 分数>=95 and 课程名称='计算机应用'

--练习题06:查找出“数学专业”班全体同学的姓名和“数学”课程考试分数。

SELECT 姓名,分数from 学生,成绩where 学生.学号=成绩.学号and 班级编号in(select 班级编号 from

班级 where 班级名称='数学专业' ) and 课程编号 in(select 课程编号 from 课程 where 课程名称='数学')

--例1:查找出那些还没有学生的班级名称。

SELECT 班级名称 FROM 班级 WHERE NOT EXISTS (SELECT * FROM 学生 WHERE 学生.班级编号=班级.班级编号)

--例2:检索出每个学生都选修了的课程(并且考试都及格)。

SELECT 课程编号,课程名称 FROM 课程 WHERE NOT EXISTS

(SELECT 学号 FROM 学生 WHERE NOT EXISTS

(SELECT * FROM 成绩

WHERE 课程.课程编号=成绩.课程编号 AND 学生.学号=成绩.学号 AND 分数>=60))

--练习题01:写出可实现例1要求的其他命令。

Select 班级名称 from 班级 where 班级编号 not in(select 班级编号 from 学生)

--练习题02:写出可实现例2要求的其他命令。

SELECT 课程编号,课程名称 FROM 课程 WHERE 课程编号 NOT in

(SELECT 课程编号 FROM 成绩

WHERE 分数>=60)

UPDATE 学生 SET 已修学分=(SELECT SUM(学分) FROM 成绩,课程

WHERE 学生.学号=成绩.学号 AND 分数>=60 AND 成绩.课程编号=课程.课程编号)

--练习题03:查找出已修学分在15和20之间的学生的信息。

Select*from 学生 where 已修学分 between 15 and 20

--练习题04:查找出1983年6月1日至1984年6月1日之间出生的少数民族学生的信息。UPDATE 学生 SET 民族=(SELECT 民族 FROM 学生B WHERE 学生.学号=学生B.学号)

Select*from 学生 where 出生日期 between '1983-6-1' and '1984-6-1' and 民族<> '汉族'

--练习题05:查找出已修学分在15和20之间、且“自然辨证法”课程的考试分数达到80分的学生的姓名、性别、所在班级。

select 姓名,性别,班级名称 from 学生,班级 where 班级.班级编号=学生.班级编号 and

相关文档
最新文档