SQL语句练习答案

发布 2022-09-02 20:00:28 阅读 6015

1.用sql语句在“商学院教学管理”数据库中建立学生表、课程表、成绩表、教师表、授课表、班级表。实现下列要求:

1)按课本第99-100页表结构要求建立以上六张表。

2)在学生表中插入一个学生记录:(”99082901”,”程丽”,”女”,1981-2-10,”群众”, 200704”)。

insert into 学生 ( 学号, 姓名, 性别, 出生日期, 政治面貌, 班级编号 )

values ("99082901", 程丽", 女", ##, "群众", 200704");

3)使选修cz004号课的同学的成绩为null值。

update 成绩 set 分数 = null where 课程编号="cz004";

4)为课程表加一”教师”列。

alter table 课程 add 教师 text

5)修改课程表,使“肖贵”老师教cj001号课。

update 课程 set 教师 = 肖贵" where 课程编号="cj001";

6)列出“王勇”老师所授课程的课号和课名。

select 课程。课程编号, 课程。课程名称 from 课程, 授课, 教师。

where 课程。课程编号=授课。课程编号 and 授课。教师编号=教师。教师编号 and 教师。姓名="王勇";

或。select 课程。课程编号, 课程。课程名称。

from 课程 inner join (授课 inner join 教师 on 授课。教师编号=教师。教师编号) on 课程。课程编号=授课。课程编号。

where 教师。姓名="王勇";

7)列出年龄不小于20的男生的学号和姓名。

select 学号, 姓名 from 学生。

where 性别="男" and year(date())year(出生日期)>=20;

8)统计学生所选课程的门数。

select 学生。姓名, count(*)as 选课门数 from 学生, 成绩

where 学生。学号=成绩。学号 group by 学生。姓名;

9)列出选修cj001号课的学生的平均年龄。

select **g(year(date())year(学生。出生日期)) as 平均年龄 from 学生, 成绩。

where 学生。学号=成绩。学号 and 成绩。课程编号="cj001";

10)列出选修“计算机基础”课的学生的平均成绩、最高分和最低分。

select **g(成绩。分数) as 平均分, max(成绩。分数) as 最高分, min(成绩。分数) as 最低分。

from 成绩 inner join 课程 on 成绩。课程编号=课程。课程编号。

where 课程名称="计算机基础";

11)列出所有姓“李”的同学的姓名、年龄和性别。

select 姓名, year(date())year(出生日期) as 年龄, 性别 from 学生。

where 姓名 like "李*";

12)列出成绩表中成绩为空值的学生的姓名、课号。

select 学生。姓名, 成绩。课程编号

from 学生 inner join 成绩 on 学生。学号=成绩。学号 where 成绩。分数 is null;

13)列出年龄大于女生平均年龄的男生的姓名和年龄。

select 学生。姓名, year(date())year(出生日期) as 年龄 from 学生。

where ((学生。性别)="男") and ((year(date())year([出生日期]))select **g(year(date())year(出生日期)) from 学生 where 性别="女"))

14)删除成绩表中无成绩的记录。

delete * from 成绩 where 分数 is null;

15)把低于cj001号课平均成绩的所有同学的所有课程的成绩提高5分。

update 成绩 set 分数 = 分数+5

where 分数<(select **g(分数) from 成绩 where 课程编号="cj001");

16)按学号升序,成绩降序列出每个同学的选课情况(包括姓名、课名、成绩)。

select 学生。姓名, 课程。课程名称, 成绩。分数。

from 学生 inner join (成绩 inner join 课程 on 课程。课程编号=成绩。课程编号) on 学生。学号=成绩。学号。

order by 学生。学号, 成绩。分数 desc;

17)按课号和成绩降序列出每门课的选课情况包括课名、姓名、成绩。

select 课程。课程名称, 学生。姓名, 成绩。分数 from 课程, 学生, 成绩。

where 课程。课程编号=成绩。课程编号 and 学生。学号=成绩。学号。

order by 课程。课程编号 desc , 成绩。分数 desc;

18)按成绩降序列出每个同学的姓名、总成绩。

select 学生。姓名, sum(成绩。分数) as 总分。

from 学生, 成绩。

where ((学生。学号)=成绩。学号))

group by 学生。姓名, 学生。学号。

order by 2 desc;

19)求出学习全部课程的所有同学的名单。

select 学生。姓名。

from 学生, 成绩。

where 学生。学号=成绩。学号。

group by 成绩。学号, 学生。姓名。

h**ing (count(*)select count(*)from 课程));

20)列出平均成绩大与80分同学的学号和平均成绩,按平均成绩降序排列。

select 成绩。学号, **g(成绩。分数) as 平均分。

from 成绩。

group by 成绩。学号。

h**ing (**g(成绩。分数)>80)

order by 2 desc;

课后习题答案。

select 学号,姓名,性别,出生日期,政治面貌,**。

from 学生。

select 姓名,**g(分数) as 平均分。

from 学生,成绩。

where 学生。学号=成绩。学号。

group by 学生。学号,姓名。

select * from 教师 where 姓名=(select 姓名 from 教师 group by 姓名 h**ing count(*)2)

select * from 教师 where 教师编号 not in(select distinct 教师编号 from 授课)

或。select 教师。教师编号, 教师。姓名, 教师。性别。

from 教师 left join 授课 on 教师。教师编号 = 授课。教师编号。

where ((授课。教师编号) is null));

select * from 教师。

select 姓名,课程名称,分数 from 学生 inner join(成绩 inner join 课程 on 成绩。课程编号=课程。课程编号) on 学生。

学号=成绩。学号。

where 分数<60

order by 3

select * from 教师。

where (year(date())year(参加工作时间))>8

select 专业,count(*)as 党员人数 from 班级 inner join 学生 on 班级。班级编号=学生。班级编号。

where 政治面貌="中**员"

group by 专业。

或。select 班级。专业, count(学生。学号) as 党员人数。

from 班级 inner join 学生 on 班级。班级编号 = 学生。班级编号。

group by 班级。专业, 学生。政治面貌。

h**ing ((学生。政治面貌)="中**员"))

select 课程名称,**g(分数) as 平均成绩 from 课程,成绩

where 课程。课程编号=成绩。课程编号

group by 课程名称 order by 2 desc

select 学生。学号,姓名,sum(学分) as 总学分。

from 学生,课程,成绩。

where 学生。学号=成绩。学号 and 课程。课程编号=成绩。课程编号。

group by 学生。学号,姓名。

select 学生。学号,姓名,**g(分数) as 平均分。

from 学生,成绩。

where 学生。学号=成绩。学号

group by 学生。学号,姓名。

h**ing count(*)3

select 课程。课程编号,课程名称,**g(分数) as 平均分。

from 课程,成绩。

where 课程。课程编号=成绩。课程编号。

group by 课程。课程编号,课程名称。

h**ing count(*)3

SQL语句练习部分题目答案

1 6分 3分 分别用关系代数和sql语言查询至少选修了一门其直接先行课为5号课程的学生姓名。sname cpno 5 course sc student 或 sname cpno 5 course sc sno,sname student 或 sname sno cpno 5 course sc ...

SQL语句 无答案

一。sql语句。1 c226 下列关于sql语言特点的描述中,错误的是 a 语言非常简洁b 是一种一体化语言 c 是一种高度过程化的语 d 可以直接以命令方式交互使用,也可以程序方式使用。2 1103 7 负责数据库中查询操作的数据库语言是。a 数据定义语言 b 数据管理语言 c 数据操作语言 d ...

SQL查询语句练习

1 查询student表中的所有记录的sname ssex和class列。语句 select sname,ssex,class from student 查询结果 2 查询教师所有的单位即不重复的depart列。语句 select distinct depart from teacher 查询结果 ...