1、SELECT 语句练习题有下列四个表:1、学生表S_NOS_NAMES_SEXS_BIRTHDAYCLASS108曾华男1905-5-2295033105匡明男1905-5-1895031107王丽女1905-5-795033101李军男1905-5-995033109王芳女1905-5-1895031103陆君男1905-5-20950312、教师表T_NOT_NAMETSEXT_BIRTHDAYPROFDEPART804李诚男1958-12-2副教授计算机系856张旭男1969-3-12讲师电子工程系825王萍女1972-5-5助教计算机系831刘冰女1977-8-14助教电子工程系3、课
2、程表C_NOC_NAMET_NO3-105计算机导论8253-245操作系统8046-166数据电路8569-888高等数学1004、成绩表S_NOC_NODEGREE1033-245861053-245751093-245681033-105921053-105881093-105761013-105641073-105911083-105781016-166851076-106791086-16681Select 语句的最基本结构:Select . From .whereorder by:排序子句(ASC:升序,DESC:降序)like:模式匹配(通配符:% 可以匹配任意类型和长度的字符;
3、_ 任意单个字符。 聚合函数(SUM AVG、COUNT、COUNT(*)、MAX、MIN)GROUP BY:分组1、 查询Student表中的所有记录的S_NAME、S_SEX和Class列。2、 查询教师所有的单位即不重复的Depart列。3、 查询Student表的所有记录。4、 查询Score表中成绩在60到80之间的所有记录。5、 查询Score表中成绩为85,86或88的记录。6、 查询Student表中“95031”班或性别为“女”的同学记录。7、 以Class降序查询Student表的所有记录。8、 以C_NO升序、Degree降序查询Score表的所有记录。9、 查询“950
4、31”班的学生人数。10、查询Score表中的最高分的学生学号和课程号。11、查询3-105号课程的平均分。12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。13、查询最低分大于70,最高分小于90的S_NO列。14、查询所有学生的S_NAME、C_NO和Degree列。15、查询所有学生的S_NO、C_NAME和Degree列。16、查询所有学生的S_NAME、C_NAME和Degree列。17、查询“95033”班所选课程的平均分。SQL语句练习题参考答案 1、 select S_NAME,S_SEX,Class from Student;2、 select dist
5、inct depart from teacher;3、 select S_NO as 学号,S_NAME as 姓名,S_SEX as 性别,S_BIRTHDAY as出生日期,Class as班号from student;或select S_NO as 学号,S_NAME as 姓名,S_SEX as 性别,S_BIRTHDAY as 出生日期,Class as 班号 from student;4、 select * from score where degree between 60 and 80;或select * from score where degree=60 and degre
6、e5;13、select S_NO from score group by S_NO having min(degree)70 and max(degree)90;14、select student.S_NAME,score.C_NO,score.degree from student,score where student.S_NO=score.S_NO;15、select x.S_NO,y.C_NAME,x.degree from score x,course y where x.C_NO=y.C_NO;16、select x.S_NAME,y.C_NAME,z.degree from student x,course y,score z where x.S_NO=z.S_NO and z.C_NO=y.C_NO;17、select y.C_NO,avg(y.degree) from student x,score y where x.S_NO=y.S_NO and x.class=95033group by y.C_NO;