0.数据库第二章找出有间接先行课的所有课程的课程号课程名称。6、 查询“CS”系所有学生的平均年龄。 7、 查询课程名是以“系统”结尾的课程信息。 8、 查询先行课为“6”号课程的课程信息。 9、 查询间接先行课为“5”号课程的课程号及课程名。 10、 查询没有先行课的课程名。 11、 对student及sc表做等值连接。 jvzquC41dnuh0lxfp0tfv8r2a876;?=691gsvrhng1jfvjnnu1733=7793>
1.复杂查询查询每一门课的间接先行课(即先行课的先行课)(2) 查询每一门课的间接先行课(即先行课的先行课),显示课程编号和该门课程的间接先行课编号。 select c1.cno,c2.precno from courses c1 left join courses c2 ON c1.precno=c2.cno where c2.precno is not null (3) 查询学生的学号、姓名、选修课程的名称和成绩。 select students.sno,sname,cname,jvzquC41dnuh0lxfp0tfv8kzzmni1jwvkerf1mjvckrt1:7653=95:
2.SQL实验高级查询(二)查询所有学生的学号、姓名,所选课程的课程号、课程名和成绩信息 SELECT student.sno,student.sname,course.cno,course.cname,sc.grade FROM student JOIN sc ON student.sno=sc.sno JOIN course ON sc.cno=course.cno; 查询每一门课的间接先修课(先修课的先修课),显示信息包括课程号、间接先修课课程号。 jvzquC41cxujf7txgtljv7hp1rutv8:e94>b9l;32f:g7@=g47>bg>i47:i26A
3.间接先修课为离散数学的课程名称;(6)查询所有没有先修课的课程或者,可能用户的问题中的先修课信息存储在其他表中?比如,可能存在一个Prerequisite表,包含Cno(课程号)和PreCno(先修课号)。但根据用户的问题,例如问题2到6,用户可能假设Course表中有一个直接指向先修课的字段。否则,如何查询先修课? 例如,问题2:“查询‘形式语言与自动机’先修课的课程名称”,这需要知道该课程jvzquC41ygtlw7hufp4og}4cpu}ft8:jr2>29spt
4.本科生第二次选课通知(20242020级学生起,学生成绩单中的形势与政策成绩在成绩单中将于毕业时体现为《形势与政策教育》(课程号:IPT009,学分:2学分),成绩来源为《形势与政策(1)—(8)(成绩单中不显示)》。务必注意《形势与政策(1)—(8)》缺任何一门或任何一门课程小于60分将无法合成成绩,无合成成绩的学生将无法毕业。 jvzquC41iumm0oiuw4ff~3ep1814=42;2=0e<>93c78;<551rghg7mvo
5.SQL查询实践:学生选课数据库复杂查询(1)查询选修了数据库这门课的学生的学号和姓名 (2)查询选修了3号课程并且成绩在85分以上的学生的学号和姓名 (3)查询信息系统这门课的间接先行课的课程号 (4)查询所有学生选课的情况(包括没有选课的学生) (5)查询选修了2号课程的学生的学号、姓名、课程名称和成绩 jvzquC41dnuh0lxfp0tfv8hh88<78?;1ctzjeuj1fgzbkux134689<993
6.数据库——新建查询,select查询5. 查询每一门课的间接先行课的课程名称 Select first.cname From course first,course second Where first.cpno=second.cno 6.查询所在系部为“MA”且选修了高等数学课程的学生姓名,年龄,性别 Select student.sname,ssex,sage From student,course,sc jvzquC41dnuh0lxfp0tfv8mon8<7:A=1ctzjeuj1fgzbkux1:2<98?9:
7.选修的全部课程的学生号码。(10)用联合查询进行查询选修了课程第三个问题,查询每一门课的间接先修课,即先修课的先修课。这可能需要自连接,课程表自连接两次。假设课程表Course有课程号Cno和先修课Cpno。例如,如果课程A的先修课是B,而B的先修课是C,那么A的间接先修课是C。因此,需要将Course表自连接两次,第一次连接得到直接先修课,第二次连接得到间接先修课。例如,CojvzquC41ygtlw7hufp4og}4cpu}ft8733es1fA;z
8.SQL中的连接查询与嵌套查询左外连接:根据左表的记录,在被连接的右表中找出符合条件的记录与之匹配,找不到匹配的,用null填充 右连接:根据右表的记录,在被连接的左表中找出符合条件的记录与之匹配,找不到匹配的,用null填充 例3:查询缺少成绩的的学生号和课程号: SELECT Student.Sno,Cno jvzquC41dnuh0lxfp0tfv8HEUW^X\8ftvkimg8igvcomu8<237=:3:
9.数据库实验二数据查询茶飘香~SQL>selectdistinct student.sname,student.snofromstudent,scwherestudent.sno=sc.sno and (sc.cno=1or sc.cno=2); iv. 查询每一门课程的间接先行课的课程号。 SQL>selectfirst.cno,second.cpnofromcourse first,course secondwherefirst.cpno=second.cno; v. 查询与’刘晨’在同一个系学习的学生。 SQL>selejvzquC41yy}/ewgnqiy/exr1ejko;>621r572;=4:84ivvq
10.学生姓名和成绩2.查询每门课程的间接先行课(即先行6)查询缺少了成绩的学生的学号和课程号。 2、连接查询 在学生选课库中实现其数据连接查询操作。 1) 查询学生的学号、姓名、选修的课程名称及成绩。 2) 查询数计学院学生选修的课程学分大于 2 的课程详细信息。 3) 查询所有学生的信息以及他(她)所选课的课程编号和成绩(要求查询结果也显示出没有 选修课程的学生jvzquC41dnuh0lxfp0tfv87524e8:;=244:0c{ykenk0fnyckny03<=544>28
11.实验六6-10 找出有间接先行课的所有课程的课程号、课程名称。 Tips:所谓间接先行课:某一门课程 A 的先行课 B 的先行课 C,因此 C 就是 A 的间接先行课; 思路: 利用存在性检测 exists 即可; where 条件中均为 fcid 和 cid 的比较; createviewtest6_10asselectcid,namefrompub.course t0whereexists(selectcidfrojvzquC41dnuh0lxfp0tfv8vsa7953<<7;1gsvrhng1jfvjnnu1732>=6478