【数据库原理 实验报告5】数据查询的应用(连接)

发布时间:2026/7/21 10:55:44

【数据库原理 实验报告5】数据查询的应用(连接) 上一篇【数据库原理 实验报告4】数据查询的应用目录【实验目的】【实验准备】【实验要求】实验心得【实验目的】掌握数据查询语言的使用能独立按要求对数据库进行指定的查询操作。【实验准备】界面方式创建数据库student.在该数据库下完成本次实验题目。在数据库student下执行文件CREATETAB.sql在数据库student下执行文件INSERTTAB.sql【实验要求】第一部分练习第3章第3节例3.12和例3.13P88。第二部分2 查询全体学生选课情况即学号、姓名、课程号、成绩截图代码SELECT S.S#, S.SName, SC.C#, SC.SCORE FROM S JOIN SC ON S.S# SC.S#;3 查询成绩大于80分的学生的学号、姓名年龄、课程号、成绩截图代码SELECT S.S#, S.SName, S.Age, SC.C#, SC.SCORE FROM S JOIN SC ON S.S# SC.S# WHERE SC.SCORE 80;查询选修‘DBA’课程并且该门课程成绩在96分以上的学生姓名。截图代码SELECT S.SName FROM S JOIN SC ON S.S# SC.S# JOIN C ON C.C# SC.C# WHERE C.CName DBA AND SC.SCORE 96;5 查询选修了C1课程或C2课程学生的学号、姓名、课程号、成绩截图代码SELECT S.S#, S.SName, SC.C#, SC.SCORE FROM S JOIN SC ON S.S# SC.S# WHERE SC.C# IN (C1, C2);6 查询至少选修两门课程的学生学号 提示自身连接查询截图代码SELECT S.S# FROM S JOIN SC ON S.S# SC.S# GROUP BY S.S# HAVING COUNT(SC.C#) 2;查询所有学生的姓名及其选修课程的信息需要返回学生姓名和课程号截图代码SELECT S.SName, SC.C# FROM S LEFT JOIN SC ON S.S# SC.S#;查询所有学生的学号及其选课门数。截图代码SELECT S.S#, COUNT(SC.C#) AS Course_Count FROM S LEFT JOIN SC ON S.S# SC.S# GROUP BY S.S#;利用集合操作显示没有选修过课程的学生的学号截图代码SELECT S.S# FROM S EXCEPT SELECT SC.S# FROM SC;实验心得本次数据库原理课程设计实验围绕数据查询的连接操作展开通过实际操作练习我不仅巩固了SQL查询语言的应用更深刻理解了连接查询的核心原理与实际价值也在实践中发现了自身的不足收获颇丰。实验开始前我们按照要求创建了student数据库并执行相关SQL文件完成表的创建与数据插入为后续查询操作做好了准备。此次实验分为两部分第一部分对教材中的实例进行练习帮助我们快速回顾连接查询的基础语法第二部分则是针对性的实操题目涵盖了内连接、左连接、自身连接以及集合操作等多种查询方式每一道题目都对应着不同的应用场景考验我们对连接查询的灵活运用能力。在实操过程中我逐渐掌握了不同连接方式的区别与适用场景。内连接通过匹配两个表中的共同字段只返回满足条件的记录这在查询学生选课情况、成绩大于80分的学生信息等题目中发挥了重要作用。例如查询全体学生选课情况时通过将学生表与选课表进行内连接精准关联学号字段成功获取了学号、姓名、课程号和成绩等所需信息。而左连接则不同它会返回左表中的所有记录即使右表中没有匹配的记录也会显示这在查询所有学生的选课信息、选课门数时尤为关键确保了即使没有选课的学生也能被统计到避免了数据遗漏。本次实验中最具挑战性的是自身连接和集合操作的应用。查询至少选修两门课程的学生学号时起初我未能理解自身连接的思路尝试多次后才明白通过将选课表与自身关联结合分组统计和筛选条件才能准确筛选出符合要求的学生。而利用集合操作查询没有选修过课程的学生学号时通过EXCEPT关键字排除掉有选课记录的学生简洁高效地得到了结果这让我意识到集合操作在数据筛选中的便捷性。实验过程中我也遇到了一些问题。比如在多表连接查询时偶尔会出现字段名冲突的情况后来通过指定表的别名如S、SC、C明确每个字段所属的表成功解决了这一问题。此外在使用GROUP BY分组统计时也曾因忘记添加HAVING子句而无法筛选出符合条件的结果经过反复检查和修改逐渐掌握了分组查询的语法规范。这些问题让我明白SQL查询虽然语法看似简单但细节至关重要稍有疏忽就会导致查询结果错误必须严谨细致、认真对待每一个步骤。通过本次实验我不仅熟练掌握了连接查询的多种方法更深刻认识到理论与实践相结合的重要性。课堂上学习的连接查询原理只有通过实际操作才能真正理解和掌握才能灵活运用到实际问题中。同时我也意识到数据库查询在实际应用中的广泛用途无论是学生信息管理、成绩统计还是各类数据的筛选与分析都离不开高效的查询操作。此次实验也让我看到了自身的不足比如对复杂查询的逻辑梳理不够清晰遇到问题时解决效率有待提高。在今后的学习中我将加强SQL查询的练习多思考不同查询方式的优化方法提高自身的实操能力和问题解决能力。同时我也会更加注重细节培养严谨的学习态度为后续学习更复杂的数据库知识打下坚实的基础。总的来说本次数据查询连接实验让我收获良多不仅提升了实操技能更深化了对数据库原理的理解。在今后的学习和实践中我将把本次实验所学运用到实际中不断提升自己的专业能力为今后从事相关工作做好准备。

相关新闻