设有学生-课程数据库,数据库模式为:
学生Student(学号sno,姓名sname,性别ssex,年龄sage,所在系sdept)
课程Course(课程号cno,课程名cname,先行课cpno,学分ccredit)
选课SC(学号sno,课程号cno,成绩grade)
1. 分别用关系代数 和SQL语句 写出下列查询:
查询选修了“数据库原理”课程的女学生的姓名。
sql语言:
--利用嵌套查询
select sname from student
where sno in (select sno from sc where cno = (select cno from course where cname = '数据库原理')) and ssex = '女'
- 请给出下列SQL语句
- 有些同学选修了课程之后没有考试,没有成绩,请查询所有有成绩的学生的学号和成绩。
select sno,grade from sc where grade is not null
- 查询每一门课的间接先修课(即先修课的先修课)。
--自身连接 select x.cno,y.cpno from course x,course y where x.cpno = y.cno
- 查询SC表中选修了一门以上课程的同学中分数为非最高分成绩的记录。
--先查询选修课程大于1的所有成绩 --减去每个同学的最大成绩 --即得到符合题意的答案 select grade from sc where sno in (select sno from sc group by sno having count(*) > 1) except select max(grade) from sc group by sno
- 向Student表中插入新数据:学号为2014009,姓名为张三,所在系为CS,其余为空
- 有些同学选修了课程之后没有考试,没有成绩,请查询所有有成绩的学生的学号和成绩。