在网上找了些SQL练习题做,但是网上很多题目和答案要么比较老旧了,要么不适用于MySQL,要么代码风格不好,所以我进行了适当修改加工。现在将改进版的题目和答案分享一下。
我使用的是MYSQL 5.5,Win环境,使用的编程环境是MySQL Workbench。
注:要是有错误或者改进优化建议,请给我发邮件,万分感谢:qiuyuling98@163.com。
原贴地址: https://blog.csdn.net/qaz13177_58_/article/details/5575711/ (原贴使用的是MySQL 5.0)
建库/表
首先是建库和建表(都是简单的DDL语句和DML语句,没有用上索引主键之类的):
|
|
题目一览
1、 查询student表中的所有记录的sname、ssex和class列。 2、 查询教师所有的单位即不重复的dept列。 3、 查询student表的所有记录。 4、 查询score表中成绩在60到80之间的所有记录。 5、 查询score表中成绩为85,86或88的记录。 6、 查询student表中“95031”班或性别为“女”的同学记录。 7、 以class降序查询student表的所有记录。 8、 以cno升序、degree降序查询score表的所有记录。 9、 查询“95031”班的学生人数。 10、查询score表中的最高分的学生学号和课程号。 11、查询‘3-105’号课程的平均分。 12、查询score表中至少有5名学生选修的并以3开头的课程的平均分数。 13、查询最低分大于70,最高分小于90的sno列。 14、查询所有学生的sname、cno和degree列。 15、查询所有学生的sno、cname和degree列。 16、查询所有学生的sname、cname和degree列。 17、查询“95033”班所选课程的平均分。 18、假设使用如下命令建立了一个grade表:
|
|
现查询所有同学的sno、cno和rank列。 19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。 20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。 21、查询和学号为108的同学同年出生的所有学生的sno、sname和sbirthday列。 22、查询“张旭“教师任课的学生成绩。 23、查询选修某课程的同学人数多于5人的教师姓名。 24、查询95033班和95031班全体学生的成绩记录。 25、查询存在有85分以上成绩的课程cno. 26、查询出“计算机系“教师所教课程的成绩表。 27、查询“计算机系”中与“电子工程系“教师不同职称的教师的tname和prof。 28、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的cno、sno和degree,并按degree从高到低次序排序。 29、查询所有教师和同学的name、sex和birthday. 30、查询所有“女”教师和“女”同学的name、sex和birthday. 31、查询成绩比该课程平均成绩低的同学的成绩表。 32、查询所有任课教师的tname和dept. 33、查询所有未讲课的教师的tname和dept. 34、查询至少有2名男生的班号。 35、查询student表中不姓“王”的同学记录。 36、查询student表中每个学生的姓名和年龄。 37、查询student表中最大和最小的sbirthday日期值。 38、以班号和年龄从大到小的顺序查询student表中的全部记录。 39、查询“男”教师及其所上的课程。 40、查询最高分同学的sno、cno和degree列。 41、查询和“李军”同性别的所有同学的sname. 42、查询和“李军”同性别并同班的同学sname. 43、查询所有选修“计算机导论”课程的“男”同学的成绩表
emmmm~是不是被吓到了,其实都是非常非常简单基础的题,但是也不要眼高手低,请一定自己练习后再看以下“参考答案”。
参考答
|
|