数据库原理及应用案例教程.ppt
关系数据库语言SQL;SQL概述;SQL概述;SQL概述;SQL概述;SQL概述;SQL概述;SQL概述;SQL概述;SQL概述;SQL概述;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据定义;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;数据查询;例:查询每个学生的根本信息以及他/她选课的情况
SELECTStudents.*,Enrollment.*
FROMStudents,Enrollment
WHEREStudents.Sno=Enrollment.Sno;上述结果表如果要去掉重复列,就要用SELECT子句指定结果表中包含的列名,这样就成为自然连接。如下:
SELECTStudents.Sno,Sname,Ssex,Sage,
Sdept,Cno,Grade
FROMStudents,Enrollment
WHEREStudents.Sno=Enrollment.Sno;例:查询每个学生的学号、姓名、选修的课程名、成绩。
SELECTStudents.Sno,Sname,Cname,Grade
FROMStudents,Courses,Enrollment
WHEREStudents.Sno=Enrollment.Sno
ANDCourses.Cno=Enrollment.Cno
;例:查询选修了C2且成绩大于90分的学生的学号、姓名、成绩。
SELECTStudents.Sno,Sname,Grade
FROMStudents,Enrollment
WHEREStudents.Sno=Enrollment.SnoANDCno=C2ANDGrade90
注意:这里用AND将一个连接条件和两个行选择条件组合成为查询条件;例:求计算机系选修课程大于等于2门课的学生的学号、姓名、平均成绩,并按平均成绩从高到低排序。
SELECTStudents.Sno,Sname,AVG(Grade)Average
FROMStudents,Enrollment
WHEREStudents.Sno=Enrollment.Sno
ANDSdept=Computer
GROUPBYStudents.Sno,Sname
HAVINGCOUNT(*)=2
ORDERBYSUM(Grade)DESC;数据查询;例:查询与Sue在同一个系学习的??有学生的学号和姓名。
SELECTS2.Sno,S2.Sname
FROMStudentsS1,StudentsS2
WHERES1.Sdept=S2.SdeptANDS1.Sname=Sue
说明:当给表指定了别名后,在查询语句的其他所有用到
表名的地方都要使用别名,
而不能再使用源表名。
并且输出的列一定要加上表的别名
来限定是哪个逻辑表中的列;数据查询;例:查询所有学生的选修情况,要求包括选修了课程的学生和没有修课的学生,显示他们的学号、姓名、课程号、成绩。
SELECTStudents.Sno,Sname,Cno,Grade
FROMStudents,Enrollment
WHEREStudents.Sno*=Enrollment.Sno;数据查询;数据查询;数据查询;数据查询;例:查询其他系中比计算机系任一学生年龄都小的学生根本情况。
SELECT*FROMStudents
WHERESdept!=ComputerANDSageALL(SELECTSageFROMStudentsWHERESdept=Computer);例:查询其他系中比计算机系某一学生年龄小的学生的根本情况。
SELECT*FROMStudents
WHERESdept!=ComputerANDSageANY(SELE