(4) 按分数降序排列,输出选修了“程序设计”课程的学生的姓名和分数。
(5) 求学号为 s1 的学生的总分和平均分。
S sno s1 s2 s3 s4 s5 sn 赵亦 钱尔 孙珊 李思 周武 sd 计算机 信息 信息 自动化 计算机 sex age 女 17 男 18 女 20 男 21 男 19
SC sno cn score 92 85 80 90 88 s1 程序设计 s1 微机原理 s2 数据库 s3 程序设计 s4 编译原理
18. 现有关系数据库如下:学生(学号,姓名,性别,专业,奖学金);课程(课号,课名,学分) ;学习(学号,课号,分数)。 用SQL语言实现下列查询:
(1) 检索“国际贸易”专业中获得奖学金1000元的学生信息,包括学号、姓名、课名和分数。
(2) 检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业。
(3) 对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000元。
19. 设有学生—课程关系数据库,包含学生关系S(学号S# ,学生
姓名SN,所属系名SD,学生年龄SA) 、课程关系C(课程号C# ,课程名字CN,先行课号码PC#)、和学生选课关系SC(学号S# ,课程号C# ,学生成绩G)。用SQL语句实现下列查询: (1) 求计算机系学生的学号、姓名。 (2) 求不选修C3课程的学生姓名。 (3) 将李明的数学成绩改为90分。 (4) 删除99011学生的选课记录。
(5) 把对表SC的INSERT权限授予张三,并允许他将此权限授予其他用户。
(6) 为计算机系学生创建一个视图,并在该视图上查询年龄在20岁
以下的学生。
20. 设有学生—课程关系数据库,包含有学生关系S(学号S# ,学
生姓名SN,所属系名SD,学生年龄SA) 、课程关系C(课程号C# ,课程名字CN,先行课号码PC#)、和学生选课关系SC(学号S# ,课程号C# ,学生成绩G)。用SQL语句实现下列查询:
(1) 求年龄不在20岁与22岁之间的学生学号和年龄。 (2) 求选修课程号为C1且成绩为B以上的学生姓名及成绩。 (3) 求选修了课程名为‘J’的学生学号和姓名。
(4) 将一个新生记录(学号:99001,姓名:李强,所在系:计算机,年龄:19)插入学生关系S中。
21. 已知如下关系模式:雇员E(ENO,EName,Age);工程P(PNO,PName);施工W(ENO,PNO,Salary);其中,E表示雇员关系,P表示工程关系,W表示施工关系,ENO为雇员号,Ename为雇员的姓名,Age为雇员的年龄,PNO为工程号,Pname为工程名,Salary为酬金。用SQL语句表达如下查询:
(1) 参加工程名为“立交桥”的雇员姓名和酬金。 (2) 参加工程号为“P1”,且酬金最高的雇员名。 (3) 参加3个以上工程的职工号。
22. 已知如下关系模式:雇员E(ENO,EName,Age);工程P(PNO,PName);施工W(ENO,PNO,Salary);其中,E表示雇员关系,P表示工程关系,W表示施工关系,ENO为雇员号,Ename为雇员的姓名,Age为雇员的年龄,PNO为工程号,Pname为工程名,Salary为酬金。分别用关系代数和SQL语句表达如下查询: (1) 参加工程名为“立交桥”的雇员的平均酬金。
(2) 在参加工程P1的雇员中,查询比雇员E1的酬金高的雇员姓名。 (3) 参加的雇员数大于3的工程号。
23. 已知关系S, C,SC 的关系模式为:S( S#, SN, SD, SA);C(C#, CN, PC# );SC(S# , C# , G)其中: S# 学号;SN 学生姓名;SD 所属系名;SA 学生年龄;C# 课程号; CN 课程名; PC# 先行课号码;G 学习成绩;用SQL语句实现下列查询:
(1) 求选修课程号为C1课程的学生学号和学习成绩,结果按成绩降序排列。
(2) 查询选修课程号为C1课程且成绩为B以上的学生学号,姓名,系,年龄及成绩。
(3) 求不选修课程号为C3课程的学生姓名。 (4) 求选修课程超过3门的学生学号。
24. 已知关系S, C,SC 的关系模式为:S( S#, SN, SD, SA);C(C#, CN, PC# );SC(S# , C# , G);其中: S# 学号;SN 学生姓名;SD 所
属系名;SA 学生年龄;C# 课程号; CN 课程名; PC# 先行课号码;G 学习成绩;用SQL语句实现下列查询:
(1) 求学生姓名是以字母D打头的学生的学号,姓名。 (2) 求每一课程的间接先行课课程代号(即先行课的先行课)。 (3) 求选修了课程名为’J’的学生学号和姓名。 (4) 求课程号及选修该课程的学生人数。 答案:24
(1)SELECT S#,SN FROM S
WHERE SN LIKE 'D%'; (2)SELECT C# FROM C WHERE C#='P#'; (3)SELECT S#,SN FROM S WHERE CN='J';
(4)SELECT C# AS 课程号,COUNT(S#) AS 选课人数 FROM SC GROUP BY C#; 25
(1)SELECT name FROM person JION accident ON person.driver_id=accident.driver_id WHERE accident.date=’1989’;
(2)SELECT COUNT(date)as 事故数量 FROM person JOIN accident ON person.driver_id=accident.driver_id WHERE name ='John smith';