试用SQL的查询语句实现下列查询: (1)统计有学生选修的课程门数。 (2)求选修C004课程的学生的平均年龄。 (3)求学分为3的每门课程的学生平均成绩。 (4)统计每门课程的学生选修人数,超过3人的课程才统计。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。 (5)检索学号比王非同学大,而年龄比他小的学生姓名。 (6)检索姓名以王打头的所有学生的姓名和年龄。 (7)在选课表中检索成绩为空值的学生学号和课程号。 (8)求年龄大于女同学平均年龄的男学生姓名和年龄。 (9)求年龄大于所有女同学年龄的男学生姓名和年龄。 (10)检索所有比王华年龄大的学生姓名、年龄和性别。 (11)检索选修课程C002的学生中成绩最高的学生的学号。 (12)检索学生姓名及其所选修课程的课程号和成绩。 (13)检索选修4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
另一个经典同步问题:吸烟者问题(patil,1971)。三个吸烟者在一个房间内,还有一个香烟供应者。为了制造并抽掉香烟,每个吸烟者需要三样东西:烟草、纸和火柴,供应者有丰富货物提供。三个吸烟者中,第一个有自己的烟草,第二个有自己的纸和第三个有自己的火柴。供应者随机地将两样东西放在桌子上,允许一个吸烟者进行对健康不利的吸烟。当吸烟者完成吸烟后唤醒供应者,供应者再把两样东西放在桌子上,唤醒另一个吸烟者。试采用: (1)信号量和P、V操作; (2)管程编写他们同步工作的程序。
医生表中有出生日期字段而没有年龄字段,若要显示年龄可以使用以下查询: SELECT DATEDIFF(’m’,出生日期,DATE())AS 年龄 FROM 医生