
上一篇【数据库原理 实验报告3】索引的创建以及数据更新目录【实验目的】【实验准备】【实验要求】实验心得【实验目的】掌握SQL Server数据查询语言的使用能独立按要求对数据库进行指定的查询操作。【实验准备】界面方式创建数据库student.在该数据库下完成本次实验题目。在数据库student下执行文件CREATETAB.sql在数据库student下执行文件INSERTTAB.sql【实验要求】第一部分1 实现课本例题3.11-----例题3.20的查询。第二部分2查询考试成绩不及格的学生的学号要求学号不重复显示。截图代码SELECT DISTINCT S# FROM SC WHERE SCORE 60;3 查询年龄在20~23岁包括20岁和23岁之间的学生的姓名和年龄。截图代码SELECT SName, Age FROM S WHERE Age BETWEEN 20 AND 23;4 查询名字中第2个字为阳的学生姓名和学号。截图代码SELECT SName, S# FROM S WHERE SUBSTRING(SName, 2, 1) 阳;5 查询所有不姓刘的学生姓名。截图代码SELECT SName FROM S WHERE SName NOT LIKE 刘%;6 查询选修了C3课程的学生的学号及其成绩查询结果按分数降序排列。截图代码SELECT S#, SCORE FROM SC WHERE C# C3 ORDER BY SCORE DESC;7 查询各个课程号及相应的选课人数。截图代码SELECT C#, COUNT(S#) AS StudentCount FROM SC GROUP BY C#;8 查询选修了3门以上课程的学生学号。截图代码SELECT S# FROM SC GROUP BY S# HAVING COUNT(C#) 3;9 查询有3门以上课程是90分以上的学生的学号及90分以上的课程数。截图代码SELECT S#, COUNT(C#) AS HighScoreCourses FROM SC WHERE SCORE 90 GROUP BY S# HAVING COUNT(C#) 3;实验心得本次数据库原理课程设计的实验四——数据查询的应用让我深入掌握了SQL Server数据查询语言的使用方法也让我对数据库查询的逻辑的严谨性、操作的规范性有了更为深刻的认知。通过完成课本例题和课后作业中的各类查询任务我不仅巩固了课堂所学的理论知识更在实践操作中提升了问题解决能力收获颇丰。实验开始前我们按照要求完成了实验准备工作创建student数据库并执行相关SQL文件完成数据表的创建和数据插入。这一步看似简单却为后续的查询操作奠定了基础让我意识到数据库操作的连贯性和严谨性——任何一个步骤的失误都可能导致后续查询无法正常进行。比如在执行插入数据的SQL文件时若出现语法错误数据表中就无法正常加载数据后续的查询操作也会出现无结果或错误结果的情况这让我养成了操作前仔细检查、操作后及时验证的习惯。本次实验分为两部分第一部分是实现课本例题的查询第二部分是完成指定的查询任务并上传代码。课本例题的练习让我回顾了SQL查询的基础语法从简单的单表查询到条件查询、排序查询再到分组查询每一道例题都对应着一个核心知识点让我逐步熟悉了SELECT语句的使用方法以及WHERE、ORDER BY、GROUP BY、HAVING等子句的作用。通过反复练习我对查询语句的逻辑关系有了更清晰的理解能够快速判断不同查询需求对应的语法结构为后续完成复杂查询任务做好了铺垫。第二部分的作业查询任务更注重对知识的灵活运用也让我遇到了一些挑战。比如查询名字中第2个字为“阳”的学生信息时一开始我不确定如何定位字符串中的特定字符后来通过回顾课堂知识想到使用SUBSTRING函数截取字符串的指定位置顺利完成了查询。还有查询选修3门以上课程的学生学号需要使用GROUP BY子句对学号进行分组再通过HAVING子句筛选出符合条件的记录这里我曾混淆了WHERE和HAVING子句的用法经过反复调试和查阅资料明确了WHERE用于筛选行HAVING用于筛选分组后的结果最终成功写出正确的查询代码。在实验过程中我深刻体会到SQL查询语言的灵活性和严谨性。每一个关键字、每一个符号的使用都有其特定的含义稍有疏忽就会导致查询结果错误。比如在使用DISTINCT关键字去除重复学号时若忘记添加就会出现重复记录在使用BETWEEN AND语句时需要注意其包含边界值的特点避免因理解偏差导致查询范围错误。同时我也意识到截图和代码留存的重要性实验过程中及时截图记录查询结果不仅便于后续核对也能在出现问题时快速定位错误原因。通过本次实验我不仅熟练掌握了SQL Server数据查询的基本方法能够独立完成各类指定的查询操作更培养了自己的逻辑思维能力和问题解决能力。在面对复杂的查询需求时学会了先分析需求、梳理逻辑再逐步编写查询代码遇到错误时不慌乱通过查阅资料、反复调试来解决问题。此外我也认识到理论与实践相结合的重要性课堂上学习的语法知识只有通过实践操作才能真正理解和掌握才能将其灵活运用到实际问题中。本次实验也让我看到了自己的不足比如在面对更复杂的多表查询时还存在思路不够清晰的问题对一些高级查询函数的使用也不够熟练。在今后的学习中我将加强练习不断积累经验深入学习数据库查询的高级用法提高自己的数据库操作能力。同时也会更加注重细节培养自己严谨、认真的学习态度为今后从事与数据库相关的工作打下坚实的基础。总的来说本次数据查询应用实验是一次非常有意义的实践经历。它不仅巩固了我的专业知识提升了我的实践能力更让我明白了实践出真知的道理。在今后的学习和实践中我将继续保持积极的学习态度不断探索不断进步努力将所学知识运用到实际中提升自己的专业素养。