【MySQL基础练习题详解】 1. **查询Student表中的所有记录的Sname、Ssex和Class列** 使用`SELECT`语句查询指定列,不指定`FROM`后面的表名时,默认为当前数据库中的默认表。对于这个练习,我们需要指定表名`Student`: ```sql SELECT Sname, Ssex, Class FROM Student; ``` 2. **查询教师所有的单位即不重复的Depart列** 使用`DISTINCT`关键字去除重复的Depart列值: ```sql SELECT DISTINCT Depart FROM Teacher; ``` 3. **查询Student表的所有记录** 选择所有列而不指定具体列名,表示选择所有记录: ```sql SELECT * FROM Student; ``` 4. **查询Score表中成绩在60到80之间的所有记录** 使用`BETWEEN`关键字查询介于两个值之间的数据: ```sql SELECT * FROM Score WHERE Degree BETWEEN 60 AND 80; ``` 5. **查询Score表中成绩为85,86或88的记录** 使用`IN`关键字查询包含特定值的数据: ```sql SELECT * FROM Score WHERE Degree IN (85, 86, 88); ``` 6. **查询Student表中“95031”班或性别为“女”的同学记录** 使用`OR`操作符结合条件: ```sql SELECT * FROM Student WHERE Class = '95031' OR Ssex = '女'; ``` 7. **以Class降序查询Student表的所有记录** 使用`ORDER BY`关键字进行排序,`DESC`表示降序: ```sql SELECT * FROM Student ORDER BY Class DESC; ``` 8. **以Cno升序、Degree降序查询Score表的所有记录** 多个字段排序时,可以指定多个`ORDER BY`条件: ```sql SELECT * FROM Score ORDER BY Cno ASC, Degree DESC; ``` 9. **查询“95031”班的学生人数** 使用`COUNT()`函数计算满足条件的行数: ```sql SELECT COUNT(*) FROM Student WHERE Class = '95031'; ``` 10. **查询Score表中的最高分的学生学号和课程号** 使用子查询找到最高分,然后在主查询中查找对应的学号和课程号: ```sql SELECT sno, cno FROM Score WHERE Degree = (SELECT MAX(Degree) FROM Score); ``` 11. **查询每门课的平均成绩** 对于每个课程号,使用`GROUP BY`和`AVG()`函数计算平均分: ```sql SELECT Cno, AVG(Degree) AS AverageGrade FROM Score GROUP BY Cno; ``` 12. **查询Score表中至少有5名学生选修的并以3开头的课程的平均分数** 结合`HAVING`子句过滤满足条件的课程: ```sql SELECT Cno, AVG(Degree) AS AverageGrade FROM Score GROUP BY Cno HAVING COUNT(DISTINCT Sno) >= 5 AND LEFT(Cno, 1) = '3'; ``` 13. **查询分数大于70,小于90的Sno列** 直接在`WHERE`子句中设定条件: ```sql SELECT Sno FROM Score WHERE Degree > 70 AND Degree < 90; ``` 14. **查询所有学生的Sname、Cno和Degree列** 查询`Sno`与`Cno`对应的所有记录: ```sql SELECT Sname, Cno, Degree FROM Student, Score WHERE Student.Sno = Score.Sno; ``` 15. **查询所有学生的Sno、Cname和Degree列** 需要连接`Student`和`Course`表,同时通过`Score`表获取`Degree`: ```sql SELECT Student.Sno, Course.Cname, Score.Degree FROM Student, Course, Score WHERE Student.Sno = Score.Sno AND Score.Cno = Course.Cno; ``` 16. **查询所有学生的Sname、Cname和Degree列** 类似于上一题,但需注意避免重复的课程名: ```sql SELECT DISTINCT Student.Sname, Course.Cname, Score.Degree FROM Student, Course, Score WHERE Student.Sno = Score.Sno AND Score.Cno = Course.Cno; ``` 17. **查询“95033”班学生的平均分** 首先筛选出95033班的学生,再计算平均分: ```sql SELECT AVG(Score.Degree) AS AverageGrade FROM Student, Score WHERE Student.Sno = Score.Sno AND Student.Class = '95033'; ``` 以上是针对给定习题的解答,涵盖了基本的SQL查询操作,如选择、聚合、排序、连接、子查询等。这些知识点对于理解和掌握MySQL数据库的基本操作至关重要。
剩余10页未读,继续阅读
- 粉丝: 19
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助