C++ 83
4)统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,查询结果按
SELECT DISTINCT C#,COUNT(S#) FROM SC
GROUP BY C# HAVING COUNT(S#)>10 ORDER BY 2 DESC,C# ASC 结果: 没有
SELECT DISTINCT C#,COUNT(S#) FROM SC GROUP BY C#
ORDER BY 2 DESC,C# ASC 结果: C2 7 C1 6 C3 5 C5 5 C6 3 C4 1
人数降序排列,若人数相同,按课程号升序排列
5)检索学号比WANG同学大,而年龄比他小的学生姓名。
SELECT SNAME FROM S
WHERE S# >(SELECT S# FROM S WHERE SNAME='WANG') AND AGE<(SELECT AGE FROM S WHERE SNAME='WANG') ORDER BY S# ASC 或
SELECT X.SNAME FROM S AS X,S AS Y
WHERE Y.SNAME='WANG' AND X.S#>Y.S# AND X.AGE 6)在表SC中检索成绩为空值的学生的姓名和年龄 SELECT SNAME,AGE FROM S WHERE S# IN (SELECT S# FROM SC WHERE SCORE IS NULL) 结果: 没有 7)检索姓名以L打头的所有学生的姓名和年龄。 SELECT SNAME,AGE FROM S WHERE SNAME LIKE 'L%' 结果: LIUYANFE 16 LIUXIN LIUBAO 18 19 LIANGHUI 17 8)求年龄大于女同学平均年龄的男同学姓名和年龄。 SELECT SNAME,AGE FROM S WHERE SEX='M' AND AGE>(SELECT AVG(AGE) FROM S WHERE SEX='F') 结果: GAORONG 18 HANHAN 18 YANGXIAO 18 YANHUA 19 CAIJIE 18 GUOWEI 19 WANGHAN 18 GUOJIE 20 HUYUE 21 LIUBAO 19 XUNJIE 18 CHENBAO 19 9)求年龄大于所有女同学年龄的男学生姓名和年龄。 SELECT SNAME,AGE FROM S WHERE SEX='M' AND AGE>(SELECT MAX(AGE) FROM S WHERE SEX='F') 结果: GUOJIE 20 HUYUE 21 5.5 对于前面表5.3的关系R和S试求出下列各种连接操作的执行结果。 A a1 a2 a3 (a)关系R B b1 b2 b3 C c1 c2 c3 B b1 b2 b4 (b)关系S C c1 c2 c4 D d1 d2 d4 1) R NATURAL INNER JOIN S 2) R NATURAL RIGHT OUTER JOIN S 3) R RIGHT OUTER JOIN S USING(C) 4) R INNER JOIN S 5) R FULL OUTER JOIN S ON false 解 综合以上得出:公共属性能够等值连接的元组出现在结果中。运算结果中公共属性只出现一次。 连接条件:NATURAL,是自然连接。即在两个关系的公共属性上作等值连接。 连接类型:INNER JOIN,内连接,是等值连接。 SELECT * FROM R NATURAL INNER JOIN S 结果: A a1 a2 B b1 b2 C c1 c2 D d1 d2 1)R NATURAL INNER JOIN S 2)R NATURAL RIGHT OUTER JOIN S SELECT * FROM R NATURAL RIGHT OUTER JOIN S 结果: A a1 a2 null 综合以上得出:公共属性能够等值连接的元组出现在结果中。并且把S关系原该舍弃的元组也放到结果中。运算结果中公共属性只出现一次。 连接条件:NATURAL,是自然连接。即在两个关系的公共属性上作等值连接。 连接类型:RIGHT OUTER JOIN,右外连接,保留S关系原该舍弃的元组到结果中。 B b1 b2 b4 C c1 c2 c4 D d1 d2 d4 3) R RIGHT OUTER JOIN S USING(C) SELECT * FROM R RIGHT OUTER JOIN S USING(C) 结果: A a1 a2 null 综合以上得出:在两个关系的“C”公共属性能够等值连接的元组出现在结果中。并且把S关系原该舍弃的元组也放到结果中。运算结果中“C”公共属性只出现一次。 连接类型:RIGHT OUTER JOIN,右外连接,保留S关系原该舍弃的元组到结果中。 连接条件:USING(C),类似于NATURAL,这里的“C”是两个关系上的公共属性,即在两个关系的公共属性“C”上作等值连接。 R.B b1 b2 b4 S.B b1 b2 b4 C c1 c2 c4 D d1 d2 d4
相关推荐: