MySQL基础查询练习与解答

需积分: 50 49 下载量 111 浏览量 更新于2024-09-14 3 收藏 169KB DOCX 举报
“MySQL基础练习题及答案,涵盖了从基础查询到复杂的联查和函数应用,适合初学者和有一定基础的学习者进行练习。” 在MySQL数据库管理中,查询是核心操作之一,本练习题旨在帮助学习者熟悉SQL语句的编写,包括选择、筛选、分组、聚合、子查询和连接等基本概念。下面对这些练习题逐一解析: 1. 查询student表的所有记录:这涉及到`SELECT * FROM student;`语句,其中`*`表示选择所有列。 2. 查询student表的第2条到4条记录:可以使用`LIMIT`关键字,如`SELECT * FROM student LIMIT 1, 3;`,这里的1是偏移量,3是取多少条数据。 3. 查询学生id、name和department信息:`SELECT id, name, department FROM student;` 4. 查询计算机系和英语系学生信息:`SELECT * FROM student WHERE department IN ('计算机', '英语');` 5. 查询年龄18~35岁学生信息:`SELECT * FROM student WHERE age BETWEEN 18 AND 35;`,假设age是student表的一个字段。 6. 每个院系人数:需使用`GROUP BY`和`COUNT(*)`,如`SELECT department, COUNT(*) FROM student GROUP BY department;` 7. 查询每个科目的最高分:可能需要结合`score`表,使用`JOIN`和`MAX(grade)`,具体语句会根据表结构有所不同。 8. 李四的考试科目和成绩:`SELECT c_name, grade FROM score WHERE s_id = (SELECT id FROM student WHERE name = '李四');` 9. 所有学生的信息和考试信息:`SELECT s.*, sc.* FROM student s JOIN score sc ON s.id = sc.s_id;` 10. 计算每个学生的总成绩:需要`SUM()`函数,可能涉及子查询或窗口函数,具体实现视表结构而定。 11. 计算每个考试科目的平均成绩:`SELECT c_name, AVG(grade) FROM score GROUP BY c_name;` 12. 计算计算机成绩低于95的学生信息:`SELECT s.* FROM student s JOIN score sc ON s.id = sc.s_id WHERE sc.c_name = '计算机' AND sc.grade < 95;` 13. 同时参加计算机和英语考试的学生信息:可能需要两次子查询或`INTERSECT`操作,取决于数据库支持。 14. 计算机考试成绩降序排列:`SELECT * FROM score WHERE c_name = '计算机' ORDER BY grade DESC;` 15. 姓张或姓王同学的姓名、院系、科目和成绩:`SELECT name, department, c_name, grade FROM student s JOIN score sc ON s.id = sc.s_id WHERE name LIKE '张%' OR name LIKE '王%';` 16. 都是湖南的学生信息:`SELECT * FROM student WHERE address = '湖南';` 17. 查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩:`SELECT name, age, department, c_name, grade FROM student WHERE address = '湖南';` 通过这些练习题,学习者能更好地理解SQL语言的基本语法和查询技巧,从而提高在实际工作中处理数据的能力。同时,了解表的设计和关系,如`student`和`score`表的关联,也是数据库管理中的重要环节。在实际操作中,应根据实际的数据库结构调整SQL语句。