键码约束 ●在数据库建模中,最重要的约束类型是声明某个属性或属 性集是关系(表)的键码。键码的含义就是禁止关系中的两 个元组在组成键码的属性上取值一致。 根据键码的作用不同,可以把键码划分成主键码和候选键 码两种类型。主键码使用关键字 PRIMARY KEY说明,而 候选键码的说明使用关键字 UNIQUE。两种键码的主要区 别在于前者的键码属性不允许空值,一个表中最多有一个 主键码,而后者的键码属性允许空值,且一个表中可以有 多个候选键码。当然,这两种键码都不允许出现键码属性 取值相同的两个或两个以上的元组同时存在 数据库系统原理与应用教程(第二版) 第10章SQL语言高级功能 第6页
数据库系统原理与应用教程(第二版) 第10章 SQL语言高级功能 第6页 键码约束 ⚫ 在数据库建模中,最重要的约束类型是声明某个属性或属 性集是关系(表)的键码。键码的含义就是禁止关系中的两 个元组在组成键码的属性上取值一致。 ⚫ 根据键码的作用不同,可以把键码划分成主键码和候选键 码两种类型。主键码使用关键字PRIMARY KEY说明,而 候选键码的说明使用关键字UNIQUE。两种键码的主要区 别在于前者的键码属性不允许空值,一个表中最多有一个 主键码,而后者的键码属性允许空值,且一个表中可以有 多个候选键码。当然,这两种键码都不允许出现键码属性 取值相同的两个或两个以上的元组同时存在
外键码约束 ●数据库中存储的数据是客观现实的实体和实体之 间的联系。也就是说,存储的信息包括实体本身 的信息和实体之间联系的信息。前面讲过的内容 基本上都是用来说明如何处理实体本身的信息 现在我们将要介绍如何存储实体之间的联荼信息。 外键码约束就是实现实体之间联系信息存储的方 式,也是数据库中非常重要的一种约束。外键码 约束实现了两个关系之间属性互相依赖存在的意 义。如果把一个关系的属性或属性集定义为外键 码,那么它会参照另一个关系(或 关系)的 某一个或多个属性。 数据库系统原理与应用教程(第二版) 第10章SQL语言高级功能 第7页
数据库系统原理与应用教程(第二版) 第10章 SQL语言高级功能 第7页 外键码约束 ⚫ 数据库中存储的数据是客观现实的实体和实体之 间的联系。也就是说,存储的信息包括实体本身 的信息和实体之间联系的信息。前面讲过的内容 基本上都是用来说明如何处理实体本身的信息, 现在我们将要介绍如何存储实体之间的联系信息。 ⚫ 外键码约束就是实现实体之间联系信息存储的方 式,也是数据库中非常重要的一种约束。外键码 约束实现了两个关系之间属性互相依赖存在的意 义。如果把一个关系的属性或属性集定义为外键 码,那么它会参照另一个关系(或同一个关系)的 某一个或多个属性
非空约束 最简单的一种约束是非空约束,这种约束使用关 键字 NOT NULL说明。该约束的效果就是不接受 该属性为空的元组。该约束的定义也是在 CREATE TABLE语句中的属性的数据类型后面说 明 ●例如,图10-5就是一个使用了非空约束定义的 CREATE TABLE语句。在这里,除了第(4)行的 属性之外,都包含了非空约束,只是第(4)行属性 pageNumber的约束定义为可空约束 数据库系统原理与应用教程(第二版) 第10章SQL语言高级功能 第8页
数据库系统原理与应用教程(第二版) 第10章 SQL语言高级功能 第8页 非空约束 ⚫ 最简单的一种约束是非空约束,这种约束使用关 键字NOT NULL说明。该约束的效果就是不接受 该属性为空的元组。该约束的定义也是在 CREATE TABLE语句中的属性的数据类型后面说 明。 ⚫ 例如,图10-5就是一个使用了非空约束定义的 CREATE TABLE语句。在这里,除了第(4)行的 属性之外,都包含了非空约束,只是第(4)行属性 pageNumber的约束定义为可空约束
CHECK约束 在数据库中,经常需要提供一些措施保证数据满足复杂的 要求。例如,要求在关系 Author中,插入的作者性别要 么是“男”,要么是“女”,而不能是其他数据。在关系 Book中,要求插入的图书价格大于25元值是小于168元 且不能等于50元和100元。这些约束都是用户可能会碰到 曾細果不熊堡該些約的蛮现x那数据库中的数擂 用 CHECK约束来实现这种复杂的约束要求。 CHECK约束就是用来指定某一个或多个属性可以满足的 条件。当关系中的某个属性定义一个 CHECK约束后,所 有的元组插入就需要检查是否满足这种 CHECK约束要求。 只有濾足这种约束的数据才能执行成功,否则就被系统拒 数据库系统原理与应用教程(第二版) 第10章SQL语言高级功能 第9页
数据库系统原理与应用教程(第二版) 第10章 SQL语言高级功能 第9页 CHECK约束 ⚫ 在数据库中,经常需要提供一些措施保证数据满足复杂的 要求。例如,要求在关系Author中,插入的作者性别要 么是“男”,要么是“女”,而不能是其他数据。在关系 Book中,要求插入的图书价格大于2.5元但是小于168元 且不能等于50元和100元。这些约束都是用户可能会碰到 的。如果不能保证这些约束的实现,那么数据库中的数据 质量就无法得到保障。幸运的是,在SQL语言中,可以使 用CHECK约束来实现这种复杂的约束要求。 ⚫ CHECK约束就是用来指定某一个或多个属性可以满足的 条件。当关系中的某个属性定义一个CHECK约束后,所 有的元组插入就需要检查是否满足这种CHECK约束要求。 只有满足这种约束的数据才能执行成功,否则就被系统拒 绝执行