MySQL数据库实战练习:从基础到进阶

1星 需积分: 33 46 下载量 176 浏览量 更新于2024-09-13 4 收藏 28KB DOCX 举报
"这些练习题主要涵盖了MySQL数据库的基础查询操作,包括选择特定列、去除重复值、筛选条件查询、排序、计数、求最大值、平均值以及子查询等核心概念。" 1. **选择特定列**: 在SQL中,`SELECT`语句用于从表中选择指定的列。例如,`SELECT Sname, Ssex, Class FROM STUDENT` 会返回`STUDENT`表中的`Sname`、`Ssex`和`Class`列的所有数据。 2. **去除重复值**: `DISTINCT`关键字用于消除查询结果中的重复行。`SELECT DISTINCT Depart FROM TEACHER` 将显示`TEACHER`表中所有不重复的`Depart`值。 3. **查询所有记录**: 使用`SELECT * FROM TABLE_NAME`可以获取表中的所有记录,这里的`*`代表所有列。 4. **范围查询**: `BETWEEN`操作符用于选取介于两个值之间的数据。如`WHERE DEGREE BETWEEN 60 AND 80`将返回`SCORE`表中成绩在60到80之间的所有记录。 5. **集合查询**: `IN`操作符用于匹配一组特定值。`WHERE DEGREE IN (85, 86, 88)`将返回`SCORE`表中成绩为85、86或88的记录。 6. **逻辑运算符`: `OR`用于连接两个条件,`WHERE CLASS = '95007' OR SSEX = '女'`将返回`STUDENT`表中班级为'95007'或性别为'女'的记录。 7. **排序查询**: `ORDER BY`语句用于对查询结果进行排序,`DESC`表示降序,`ASC`表示升序。`ORDER BY CLASS DESC`将按班级降序排列`STUDENT`表的所有记录。 8. **复合排序**: `ORDER BY`可以同时包含多个字段,如`ORDER BY CNO ASC, DEGREE DESC`将先按课程号`CNO`升序排列,然后在同一课程内按成绩`DEGREE`降序排列。 9. **计数函数**: `COUNT()`函数用于计算满足条件的记录数,`SELECT COUNT(SNO) FROM STUDENT WHERE CLASS = '95031'`将返回'95031'班的学生人数。 10. **最大值查询**: 结合子查询,`SELECT sno, cno FROM score WHERE DEGREE = (SELECT MAX(DEGREE) FROM SCORE)`将找到`SCORE`表中的最高分及其对应的学号和课程号。 11. **平均值函数**: `AVG()`函数用于计算某列的平均值,`SELECT AVG(DEGREE) FROM SCORE WHERE CNO = '3-105'`将返回'3-105'课程的平均分。 12. **子查询与条件**: 子查询可以在`WHERE`子句中作为条件,`WHERE cno IN (SELECT cNO FROM SCORE GROUP BY CNO HAVING COUNT(*) >= 3 AND CNO LIKE '1%')`选取了至少有3名学生选修且课程号以'1'开头的课程的平均分数。 这些练习题旨在帮助学习者掌握基础的SQL查询技巧,通过实践来巩固理论知识,进一步提升在MySQL数据库管理中的能力。