SQL语句操作练习(一)
题目
利用Student、Course、SC表结构实现如下操作: 1.查询学生选课表中的全部数据 2.查询计算机系的学生的姓名、年龄 3.查询成绩在70-80分之间的学生的学号、课程号和成绩 4.查询计算机系年龄在18-20之间且性别为“男”的学生的姓名、年龄 5.查询课程号为“c001”的课程的最高的分数 6.查询计算机系学生的最大年龄和最小年龄 7.统计每个系的学生个数 8.统计每门课程的选课人数和考试最高分数 9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果 10.查询总成绩超过200分的学生,要求列出学号、总成绩
查询学生选课表中的全部数据
sql语句:
SELECT * FROM SC;
运行效果:
查询计算机系的学生的姓名、年龄
sql语句:
SELECT Sname, Sage FROM Student WHERE Sdept = 计算机系;
运行效果:
查询成绩在70-80分之间的学生的学号、课程号和成绩
sql语句:
SELECT Sno, Cno, Grade FROM SC WHERE Grade BETWEEN 70 AND 80;
运行效果:
查询计算机系年龄在18-20之间且性别为“男”的学生的姓名、年龄
sql语句:
SELECT Sname, Sage FROM Student WHERE Sdept = 计算机系 AND Sage BETWEEN 18 AND 20 AND Ssex = 男;
运行效果:
查询课程号为“c001”的课程的最高的分数
sql语句:
SELECT MAX(Grade) AS 最高分数 FROM SC WHERE Cno = c001;
运行效果:
查询计算机系学生的最大年龄和最小年龄
sql语句:
SELECT MAX(Sage) AS 最大年龄, MIN(Sage) AS 最小年龄 FROM Student WHERE Sdept = 计算机系;
运行效果:
统计每个系的学生个数
sql语句:
SELECT Sdept, COUNT(Sno) AS 学生人数 FROM Student GROUP BY Sdept;
运行效果:
统计每门课程的选课人数和考试最高分数
sql语句:
SELECT Cno, COUNT(Sno) AS 选课人数, MAX(Grade) AS 考试最高分数 FROM SC GROUP BY Cno;
运行效果:
统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果
sql语句:
SELECT Sno, COUNT(Cno) AS 选课门数, SUM(Grade) AS 考试总成绩 FROM SC GROUP BY Sno ORDER BY COUNT(Cno);
运行效果:
查询总成绩超过200分的学生,要求列出学号、总成绩
sql语句:
SELECT Sno, SUM(Grade) AS 总成绩 FROM SC GROUP BY Sno HAVING SUM(Grade) > 200;
运行效果:
考察内容
1.查询语句
SELECT 列名 FROM 表名 查询条件
2.条件查询 where、having 区别: where在分组之前进行限定,若不满足条件,则不参与分组。 having在分组之后进行限定,若不满足结果,则不会被查询出来
运算符:
、< 、<=、>=、=、<>不等于、!=不等于 BETWEEN…AND --在…之间 IN(集合) LIKE --模糊查询 占位符: _ : 单个任意字符 % : 多个任意字符 IS NULL and 或 && --和 or 或 || --或者 not 或 ! --不
3.分组查询 group by
group by 分组字段;
4.排序查询 order by
order by 子句 order by 排序字段1 排序方式1, 排序字段2 排序方式2. . .
排序方式: ASC:升序,默认的 DESC:降序 5.聚合函数 聚合函数:将一列数据作为一个整体,进行纵向的计算 (1)count:计算个数 (2)max:计算最大值 (3)min:计算最小值 (4)sum:计算和 (5)avg:计算平均值
SELECT MAX(字段名) FROM 表名;
