SQL基础练习与查询技巧

需积分: 9 1 下载量 128 浏览量 更新于2024-09-16 收藏 136KB DOC 举报
"这些练习题提供了SQL的基本操作,包括创建表、设置约束、查询数据以及进行多表操作。" 在SQL的学习中,这些基础练习涵盖了关键的概念和技能,以下是它们涉及的具体知识点: 1. **创建表与数据完整性**:创建`Article`、`Customer`和`OrderItem`三个表时,我们需指定每个字段的数据类型,如`char`、`Numeric`、`int`和`date`。实体完整性是确保每张表的主键字段不为空,这里`OrderItem`表的主键是`(顾客号, 商品号, 日期)`,而参照完整性则通过`foreign key`约束实现,将`商品号`和`顾客号`分别关联到`Article`和`Customer`表。 2. **插入数据**:虽然题目没有提供具体的插入语句示例,但插入数据通常使用`INSERT INTO`语句,例如`INSERT INTO Customer (顾客号, 顾客名, 性别, 年龄) VALUES ('0001', '张三', '男', 25)`。 3-5. **查询数据**:这三题展示了如何使用`SELECT DISTINCT`和`WHERE`子句来检索特定条件的数据。第3题和第4题的区别在于交集操作,第4题使用了子查询,而第5题使用了自表连接。 6. **排除查询**:第6题使用`NOT IN`子句找出没有定购任何商品的顾客。 7. **聚合函数与分组**:第7题要求找到购买商品号为'0001'的最多数量的商品的顾客,这需要结合`SELECT MAX()`和`GROUP BY`语句来完成,可能的解决方案是先按顾客号分组,然后在每个组内找出购买'0001'商品的最大数量,最后再找出这个最大数量最多的顾客。 8. **多表查询**:第4题和第5题涉及到多表操作,一个是使用子查询和`IN`操作符,另一个是使用表的自我连接,这展示了SQL在处理复杂查询时的灵活性。 9. **用户自定义约束**:在创建`Customer`表时,性别应限制为'男'或'女',年龄限制在10到100之间,这可以通过添加`CHECK`约束来实现,如`CHECK (性别 IN ('男', '女'))`和`CHECK (年龄 BETWEEN 10 AND 100)`。 掌握这些基本的SQL操作对于理解和处理数据库中的数据至关重要,无论是简单的查询还是复杂的分析,都是构建更高级SQL技巧的基础。