SQL语言查询实践:从简单到复杂操作解析

0 下载量 5 浏览量 更新于2024-08-04 收藏 103KB DOCX 举报
"该文档是关于SQL语言查询的实验报告,涵盖了数据库原理与应用课程的实验内容,旨在帮助学生掌握SQL中的简单查询、连接查询和聚合查询操作。实验使用了选课表和学生表,通过一系列示例展示了如何查询特定信息。" 在SQL语言查询中,主要有以下三个方面的知识点: 1. **简单查询操作**: - **选择指定列**:`SELECT Sno, Sname FROM S WHERE Sdept = '信管'` 这样的查询语句用于选取特定列(如学号Sno和姓名Sname)并过滤出满足条件(如部门为'信管')的行。 - **获取唯一值**:使用`DISTINCT`关键字可以去除重复值,如`SELECT DISTINCT SUBSTRING(Sname, 1, 1) AS FirstName FROM S`可获取所有学生名字的第一个字符,并去重。 - **模糊匹配**:`LIKE`关键字配合通配符可以实现部分匹配,例如`SELECT Sname FROM S WHERE Sname LIKE '张%'`找出所有姓张的同学。 - **组合条件查询**:可以使用`AND`和`OR`操作符组合多个条件,如`WHERE Sname LIKE '张%' AND (Sdept = '计算机科学' OR Sdept = '信管')`。 2. **连接查询操作**: - **内连接**:`INNER JOIN`用于选取两个表中满足连接条件的行,例如`SELECT S.Sno, S.Sname, SC.Grade FROM SC INNER JOIN S ON SC.Sno = S.Sno WHERE SC.Cno = 'c2' ORDER BY Grade DESC`,这个例子中,选课表SC和学生表S通过学号Sno连接,选取C2课程的学生信息,并按成绩降序排列。 - **条件过滤**:在连接查询中可以添加额外的条件,比如查询成绩在90分以上的学生信息,`WHERE SC.Grade >= 90`。 - **多表比较**:复杂查询可能涉及多个表,如查找数据库课程成绩高于“张小明”的同学,这里涉及到三个SC表和两个S表的比较。 3. **聚合查询操作**: - **聚合函数**:如`COUNT()`, `SUM()`, `AVG()`, `MAX()`, `MIN()`等,它们对一组值进行计算。例如,`SELECT COUNT(*) FROM SC WHERE Cno = 'c2'`可以计算选修C2课程的学生数量。 - **GROUP BY**:用于分组,结合聚合函数可对每个分组进行统计,例如按成绩分组查找每个成绩等级的学生人数。 - **HAVING**:在聚合查询中用于过滤分组后的结果,类似于`WHERE`但作用于分组后。 在实验过程中,学生需要熟悉SQL查询分析器的使用环境,掌握基本的SQL语法,通过实际操作理解查询结果,提升数据检索和处理的能力。实验步骤详细记录了每种查询操作的具体SQL语句及其执行结果,帮助学生加深理解和记忆。通过这样的实践,学生能更好地应用SQL进行数据查询,为后续更复杂的数据库操作打下坚实的基础。