数据库MySQL-查询练习
程序员文章站
2022-04-03 17:15:06
...
数据准备
学生表Student
学号,姓名,性别,出生年月日,所在班级
课程表Course
课程号,课程名称,教师编号
成绩表Score
学号,课程号,成绩
教师表Teacher
教师编号,教师名字,教师性别,出生年月日,职称,部门
查询练习
1.查询student表的所有记录
select * from student;//*号表示所有
2.查询student表中所有记录的s_name,s_sex,s_class列
SELECT s_no,s_name,s_class FROM student;
3.查询教师所有的单位即不重复的depart列。
SELECT distinct (t_depart) FROM teacher;//distinct意为独特的
4.查询score表中成绩在60-80之间所有的记录(sc_degree)
SELECT * FROM score WHERE sc_degree BETWEEN 61 AND 79;//两个都可
//注意:BETWEEN... ADN... 是包含边界的
//SELECT * FROM score WHERE sc_degree < 80 AND sc_degree > 60 ;
5.查询score表中成绩为85, 86, 或者88的记录(sc_degree)
表示或者关系的查询 in关键字
SELECT * FROM score WHERE sc_degree IN(85, 86, 88);
6.查询student表中’95031’班或者性别为’女’的同学记录
or关键字
SELECT * FROM student WHERE s_class = '95031' OR s_sex = '女';
7.以class降序查询student表中所有的记录
升序asc(默认),降序desc
SELECT * FROM student ORDER BY s_class desc;
8.以c_no升序.sc_degree降序插叙score表中所有的数据
SELECT * FROM score ORDER BY c_no ASC,sc_degree DESC;
先以c_no进行升序,若c_no相同,则以sc_degree降序
9.查询’95031’班的学生人数
统计,用count
SELECT COUNT(s_no) FROM student WHERE s_class = '95031';
10.查询score表中的最高分数的学生号和课程号.(子查询或者排序)
SELECT c_no, s_no FROM score WHERE sc_degree = (SELECT MAX(sc_degree) FROM score);