在《数据库系统原理与设计实验教程》的实验二中,主要涵盖了使用SQL语言进行数据库查询的多个重要知识点。以下是对这些知识点的详细说明:
1. **子查询与连接查询**:在第一题中,通过子查询和连接查询,查找了有销售记录的客户编号、名称和订单总额。这涉及到SQL中的内连接(INNER JOIN)和聚合函数(SUM)以及GROUP BY语句,用于按客户分类汇总订单总额。
2. **嵌套子查询**:第二题展示了如何使用嵌套子查询来找出订单明细表中订单金额最高的订单。这里用到了子查询作为结果集,然后在外部查询中进行比较,同时运用了聚合函数MAX和GROUP BY。
3. **NOT IN操作符**:第三题中,利用NOT IN操作符查询没有订购商品的客户编号和名称。这表明了如何使用NOT IN与子查询一起排除特定条件的记录。
4. **HAVING子句和IN操作符**:第四题中,通过HAVING子句和IN操作符,找到至少被订购3次的商品及其相关订单信息,然后按订货数量降序排序。HAVING是在GROUP BY后的过滤条件,用于对分组后的数据进行筛选。
5. **CASE表达式**:第五题中,利用CASE表达式根据性别字段转换为“男”或“女”,同时使用子查询查询“16M DRAM”的销售情况。这展示了CASE表达式的使用,以及如何在多表查询中结合EXISTS操作符。
6. **聚合函数MAX与子查询**:第六题再次运用了子查询和MAX函数,直接在OrderMaster表中找出订单金额最高的订单号和金额。
7. **COUNT函数与DISTINCT关键字**:第七题计算出销售的商品种类总数,使用COUNT函数配合DISTINCT关键字去除重复项。
8. **聚合函数与ORDER BY**:第八题展示了如何计算OrderDetail表中每种商品的订购金额总和并按金额降序排列,这使用了GROUP BY和ORDER BY语句,以及聚合函数SUM。
这些SQL查询涵盖了数据库操作的基础和进阶技巧,包括连接查询、子查询、聚合函数、分组、排序、条件筛选等,这些都是数据库管理系统中至关重要的知识。通过这些实验,学生可以深入理解数据库查询的逻辑和实际应用,为后续的数据库设计与管理奠定坚实基础。