mysql查询练习
创建数据表
新建数据库:create database select_test;
选择数据库:use select_test;
– 学生表
– Student
– 学号
– 姓名
– 性别
– 出生年月日
– 所在班级
1 | create table student( |
– 教师表
– Teacher
– 教师编号
– 教师名字
– 教师性别
– 出生年月日
– 职称
– 所在部门
1 | create table teacher( |
– 课程表
– Course
– 课程号
– 课程名称
– 教师编号
1 | create table course( |
– 成绩表
– Score
– 学号
– 课程号
–成绩
1 | create table score( |
往数据表中添加数据
– 添加学生信息
1 | insert into student values('101', '曾华', '男', '1977-09-01', '95033'); |
–添加教师信息
1 | insert into teacher values('804', '李诚', '男', '1958-12-02', '副教授', '计算机系'); |
– 添加课程表
1 | insert into course values('3-105', '计算机导论', '825'); |
– 添加成绩表
1 | insert into score values('103', '3-105', '92'); |
查询练习
1 | -- 1.查询student表的所有记录 |
1 | -- 2.查询student表中的所有记录的sname,sgender和class列 |
1 | -- 3.查询教师所有的单位即不重复的depart列 |
1 | -- 4.查询score表中成绩在60到80之间的所有记录 |
1 | -- 5.查询score表中成绩为85,86和88的记录 |
1 | -- 6.查询student表中"95031"班或性别为"女"的同学记录 |
1 | -- 7.以class降序查询student表的所有记录 |
1 | -- 8.以cno升序,degree降序查询score表的所有记录 |
1 | -- 9.查询"95031"班的学生人数 |
1 | -- 10.查询score表中的最高分的学生学号和课程号.(子查询或者排序) |
1 | -- 11.查询每门课的平均成绩 |
1 | -- 12.查询score表中至少有2名学生选修的并以3开头的课程的平均分数 |
1 | -- 13.查询分数大于70,小于90的sno列 |
多表查询1:
1 | -- 14.查询所有学生的sname, cno 和 degree列 |
多表查询2:
1 | -- 15.查询所有学生的sno,cname和degree列 |
三表关联查询:
1 | -- 16.查询所有学生的sname, cname和degree列 |
子查询 加 分组:
1 | -- 17.查询'95031'班学生每门课的平均分 |
1 | -- 18.查询选修'3-105'课程的成绩高于'109'号同学'3-105'成绩的所有同学的记录 |
1 | -- 19.查询成绩高于学号为'109',课程号为'3-105'的成绩的所有记录 |
1 | -- 20.查询和学号为108,101的同学同年出生的所有同学的sno,sname和sbirthday列 |
1 | -- 21.查询"张旭"教师任课的学生成绩 |
1 | -- 22.查询选修某课程的同学人数多于5人的教师姓名 |
1 | -- 23.查询95033班和95031班全体学生的记录. |
1 | -- 24.查询存在有85分以上成绩的课程cno |
1 | -- 25.查询出"计算机系"教师所教课程的成绩表 |
1 | -- 26.查询"计算机系"与"电子工程系"不同职称的教师的tname和prof |
1 | -- 27.查询选修编号为"3-105"课程且成绩至少高于选修编号为"3-245"的同学的cno,sno和degree |
1 | -- 28.查询选修编号为"3-105"且成绩高于选修编号为"3-245"课程的同学的cno,sno和degree |
1 | -- 29.查询所有教师和同学的name,gender和birthday |
1 | -- 30.查询所有"女"教师和"女"同学的name,gender和birthday |
复制表数据做条件查询:
1 | -- 31.查询成绩比该课程平均成绩低的同学的成绩表 |
1 | -- 32.查询所有任课老师的tname和depart |
条件加分组筛选:
1 | -- 33.查询至少有2名男生的班号 |
1 | -- 34.查询student表中不姓"王"的同学记录 |
1 | -- 35.查询student表中每个学生的姓名和年龄 |
1 | -- 36.查询student表中最大和最小的sbirthday日期值 |
1 | -- 37.以班号和年龄从大到小的顺序查询student表中的全部记录 |
1 | -- 38.查询'男'教师及其所上的课程 |
1 | - 39.查询最高分同学的sno,cno和degree列 |
1 | -- 40.查询和"李军"同性别的所有同学的sname |
1 | -- 41.查询和"李军"同性别并同班的同学sname |
1 | -- 42.查询所有选修"计算机导论"课程的"男"同学的成绩表 |
1 | -- 43.假设使用如下命令建立类一个grade表 |