实验三:数据库的简单查询和连接查询实验目的:掌握简单表的数据查询、数据排序和数据联结查询的操作方法。实验内容:简单查询操作和连接查询操作。实验步骤:一.单表查询:1.查询全体学生的学号和姓名:selectsno,snamefromstudent2.查询全体学生的所有信息:select*fromstudent或者selectsno,sname,ssex,sage,sdeptfromstudent3.查询全体学生的姓名,出生年份,和所在系,并用小写字母表示所有系名:selectsname,'出生年份为:',year(getdate())-sage,lower(sdept)fromstudent4.给上例的结果集指定列名:selectsname,'出生年份为:'出生,year(getdate())-sage年份,lower(sdept)系名fromstudent5.查询选修了课程的学生的学号:selectdistinctsnofromsc比较:selectsnofromsc6.查询年龄在20岁以下的学生的姓名及其年龄:selectsname,sagefromstudentwheresage207.查询考试成绩有不及格的学生的学号:selectdistinctsnofromscwheregrade60比较:selectsnofromscwheregrade608.查询年龄在20-30岁直接的学生的姓名,姓名,所在系:selectsname,ssex,sdeptfromstudentwheresagebetween20and309.查询IS,CS,MA系的所有学生的姓名和性别:selectsname,ssexfromstudentwheresdeptin('IS','MA','CS')10.查找所有姓’李’的学生的姓名,学号和性别:selectsname,sno,ssexfromstudentwheresnamelike'李%'比较:将学生表中的’95001’号学生的姓名’李勇’改为’李勇勇’,再执行:selectsname,sno,ssexfromstudentwheresnamelike'李_'11.查询没有先行课的课程的课程号cno和课程名cname:selectcno,cnamefromcoursewherepcnoisnull二.查询结果排序12.查询选修了3号课程的学生的学号和成绩,并按分数降序排列:selectsno,gradefromscwherecno='3'orderbygradeDESC23.查询全体学生的情况,查询结果按所在系号升序排列,同一系中的学生按年龄降序排列:select*fromstudentorderbysdeptASC,sageDESC三.连接查询:14.查询每个学生及其选修课程的情况:selectstudent.*,sc.*fromstudent,scwherestudent.sno=sc.sno比较:笛卡尔集:selectstudent.*,sc.*fromstudent,sc自然连接:selectstudent.sno,sname,ssex,sdept,cno,gradefromstudent,scwherestudent.sno=sc.sno15.查询每一门课程的间接先行课(只求两层即先行课的先行课):selectFirst.cno,Second.pcno间接先行课fromcourseFirst,courseSecondwhereFirst.pcno=Second.cno比较:selectFirst.cno,Second.pcno间接先行课fromcourseFirst,courseSecondwhereFirst.pcno=Second.cnoandSecond.pcnoisnotnull16.列出所有学生的基本情况和选课情况,若没有选课,则只列出基本情况信息:SQLServer中:selects.sno,sname,ssex,sdept,cno,gradefromstudents,scscwheres.sno*=sc.sno17.查询每个学生的学号,姓名,选修的课程名和成绩:selectS.sno,sname,cname,gradefromstudentS,courseC,scSCwhereS.sno=SC.snoandC.cno=SC.cno实验四:数据库的嵌套查询实验实验目的:加深对嵌套查询语句的理解。实验内容:使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。实验步骤:一.使用带IN谓词的子查询1.查询与’刘晨’在同一个系学习的学生的信息:2.查询选修了课程名为’信息系统’的学生的学号和姓名:3.查询选修了课程’1’和课程’2’的学生的学号:二.使用带比较运算的子查询4.查询比’刘晨’年龄小的所有学生的信息:三.使用带Any,All谓词的子查询5.查询其他系中比信息系(IS)某一学生年龄小的学生姓名和年龄;6.查询其他系中比信息系(IS)学生年龄都小的学生姓名和年龄:7.查询与计算机系(CS)系所有学生的年龄均不同的学生学号,姓名和年龄:四.使用带Exists谓词的子查询和相关子查询8.查询与其他所有学生年龄均不同的学生学号,姓名和年龄:9.查询所有选修了1号课程的学生姓名:10.查询没有选修了1号课程的学生姓名:11.查询选修了全部课程的学生姓名:11.查询至少选修了学生95002选修的全部课程的学生的学号:12.求没有人选修的课程号cno和cnamecname:13*.查询满足条件的(sno,cno)对,其中该学号的学生没有选修该课程号cno的课程14*.查询每个学生的课程成绩最高的成绩信息(sno,cno,grade):思考:如何查询所有学生都选修了的课程的课程号cno?