数据库查询深入理解:多表查询与集合操作

需积分: 10 1 下载量 184 浏览量 更新于2024-08-23 收藏 540KB PPT 举报
"这篇PPT主要讲解了多表查询和数据库完整性方面的内容,涉及数据库设计、SQL查询以及数据约束。" 在数据库管理中,多表查询是数据操作的一个重要方面,特别是对于大型数据库系统,数据通常分布在多个相关联的表中。本PPT通过实例介绍了如何进行多表查询,特别是使用`UNION`操作来合并多个结果集。`UNION`用于将两个或更多`SELECT`语句的结果合并成一个结果集。在示例中,查找分类编号为1的图书或价格大于50的图书,可以使用`UNION`来实现。当使用`UNION ALL`时,所有记录,包括重复的,都将被包含在最终结果集中。而默认的`UNION`会自动去除重复行。 数据库完整性是确保数据库中数据的一致性和准确性的重要概念。PPT提到了两个关键的完整性约束:唯一性(Unique)和外键(Foreign Key)。在创建`book`表时,`bookname`字段被定义为唯一非空(`UNIQUE NOT NULL`),这意味着每本书的名字都必须是唯一的,并且不能有空值。此外,`book`表中的`catId`字段被定义为外键,它引用`bookCategory`表的`categoryId`,这样就建立了表之间的关联,并且在外键所在的表删除记录时,可以设置为`ON DELETE SET NULL`,意味着如果在主表中删除了对应的记录,外键字段将会被设置为空值。 `bookCategory`表的创建也体现了数据库设计的规范化,它有自己的主键`categoryId`,并且`parentCategoryId`字段作为外键,参考自身的`categoryId`,形成层级关系,这在处理如类别分类这样的树形结构时非常有用。这个设计允许创建分层的类别,如一级类别和二级类别。 在插入记录的部分,PPT展示了几个SQL插入语句的例子,包括创建类别和向`book`表中插入数据。需要注意的是,插入数据时必须遵守表的结构和约束。例如,`bookInfo`表的插入语句中,有一个尝试插入`catid`为空的记录,这可能会违反外键约束,因为外键通常不允许为空,除非在定义外键时指定了`ON DELETE SET NULL`。 总结来说,这个PPT深入浅出地讲解了数据库查询中的多表操作,以及数据库完整性约束的实践应用,对于理解和掌握数据库管理和查询技巧具有很高的学习价值。