SQL Server查询实验:简单查询与连接查询

需积分: 0 1 下载量 66 浏览量 更新于2024-08-12 收藏 660KB DOC 举报
"实验3 数据库的简单查询和连接查询实验" 本次实验主要涉及数据库中的基本查询和连接查询,旨在让学生熟悉SQL Server查询分析器,深入理解SQL查询语句,并能熟练运用各种查询操作,包括投影、选择条件、数据排序、数据连接等。 1. **简单查询操作** - 投影:选择需要展示的列,例如查询数学系学生的学号和姓名,可以使用`SELECT 学号, 姓名 FROM 学生 WHERE 系别 = '数学系'`。 - 条件表达:利用`WHERE`子句筛选满足特定条件的行,如查询选修了课程的学生学号,可以使用`SELECT 学号 FROM 学生 INNER JOIN 选课 ON 学生.学号 = 选课.学号`。 - 数据排序:通过`ORDER BY`关键字对查询结果进行排序,如按成绩降序排列,`SELECT 学号, 成绩 FROM 选课 WHERE 课程号 = 'C1' ORDER BY 成绩 DESC, 学号 ASC`。 - 使用临时表:在处理复杂查询时,可以先将部分结果存储在临时表中,然后再进行下一步操作。 2. **连接查询操作** - 等值连接:`SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段 = 表2.字段`,例如查询学生及其选修的课程。 - 自然连接:自动匹配相同字段的连接,`SELECT * FROM 表1 NATURAL JOIN 表2`。 - 笛卡儿积:两个表无条件连接,`SELECT * FROM 表1 CROSS JOIN 表2`,通常需要避免。 - 一般连接:不匹配字段也可以连接,`SELECT * FROM 表1 FULL OUTER JOIN 表2 ON (条件)`。 - 外连接:包括左连接和右连接,保留所有记录,例如左连接`SELECT * FROM 表1 LEFT JOIN 表2 ON (条件)`,右连接反之。 - 内连接:只返回两个表中匹配的记录,`SELECT * FROM 表1 INNER JOIN 表2 ON (条件)`。 - 自连接:一个表与自身连接,例如查询每门课程的间接先行课,可能需要用到递归查询或自连接。 3. **其他高级查询** - 子查询:在查询中嵌套查询,如查询成绩在80~90之间的学生信息,`SELECT * FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 选课 WHERE 课程号 = 'C1' AND 成绩 BETWEEN 80 AND 90)`. - 聚合函数:如`COUNT`, `SUM`, `AVG`, `MIN`, `MAX`,用于统计和计算。 - 分组和分组函数:`GROUP BY`用于将数据分组,`HAVING`用于筛选分组后的条件。 4. **实验过程与体会** 实验过程中,学生需在SQL Server查询分析器中编写并执行SQL语句,观察并检查结果是否符合预期。通过这些练习,学生能够更好地理解SQL语句的结构和逻辑,提高查询效率,同时掌握不同类型的连接查询,如等值连接、自然连接和外连接等。最后,学生应记录实验步骤,反思学习成果,以便巩固和深化理解。 这个实验是数据库学习的重要实践环节,通过实际操作,学生能够巩固理论知识,提升数据库操作技能,为后续的数据库管理和数据分析奠定坚实基础。