在学习数据库系统的过程中,SQL作为关系型数据库管理的核心语言,其重要性不言而喻。本书第三章专门针对SQL进行了详细的讲解,涵盖了基本查询、聚合函数、连接操作、子查询以及视图等关键知识点。为了帮助读者更好地掌握这些内容,本章节后附带了一系列练习题,旨在通过实践加深理解。
以下是部分课后习题的答案解析:
练习1:基础查询
题目描述:从“员工”表中检索所有员工的信息,并按照工资从高到低排序。
解答:
```sql
SELECT
FROM 员工
ORDER BY 工资 DESC;
```
此SQL语句利用了`SELECT`命令来获取表中的所有记录,并通过`ORDER BY`对结果进行降序排列。
练习2:聚合函数
题目描述:计算“订单”表中所有订单金额的总和。
解答:
```sql
SELECT SUM(订单金额) AS 总金额
FROM 订单;
```
这里使用了`SUM()`聚合函数来求和所有订单金额,并给最终结果命名为“总金额”。
练习3:连接操作
题目描述:结合“客户”表和“订单”表,找出每位客户的姓名及其对应的订单数量。
解答:
```sql
SELECT 客户.姓名, COUNT(订单.订单ID) AS 订单数
FROM 客户
LEFT JOIN 订单 ON 客户.客户ID = 订单.客户ID
GROUP BY 客户.姓名;
```
该SQL语句首先通过`LEFT JOIN`将两个表连接起来,然后使用`COUNT()`统计每个客户的订单数,并以客户姓名为分组依据。
练习4:子查询
题目描述:找出比部门平均工资高的所有员工。
解答:
```sql
SELECT
FROM 员工
WHERE 工资 > (SELECT AVG(工资) FROM 员工 GROUP BY 部门);
```
此例展示了如何使用子查询来动态获取部门平均工资,并将其用于筛选出高于平均值的员工。
练习5:创建视图
题目描述:创建一个名为“高薪员工”的视图,包含工资超过10000的所有员工信息。
解答:
```sql
CREATE VIEW 高薪员工 AS
SELECT
FROM 员工
WHERE 工资 > 10000;
```
通过执行上述SQL语句,可以轻松地定义一个新的视图,方便后续查询使用。
以上是对《数据库系统原理与设计(第2版)——万常选版》第三章部分内容的学习总结与实践应用。希望这些示例能够帮助大家巩固所学知识,提升实际操作能力。如果还有其他疑问或需要进一步探讨的问题,请随时提问!