本文章主要介绍在MySQL数据库中如何使用各种类型的约束来确保数据完整性和准确性,并探讨不同表格之间的关系构建方法。
MySQLI. 数据库的约束
1. 概述:数据库中的约束是用来确保数据完整性和一致性的规则。
2. 分类:
- 主键约束 (primary key)
a. 作用:主键用于唯一标识表中的一行记录,不允许重复和空值。
b. 语法:`CONSTRAINT constraint_name PRIMARY KEY(column1, column2,...)`
c. 示例:创建一个包含学生信息的表时,可以将学号设为主键以确保每个学生的唯一性。
- 唯一约束 (unique)
a. 作用:保证某一列或一组列中的值是唯一的,但允许空值存在。
b. 语法:`CONSTRAINT constraint_name UNIQUE(column1, column2,...)`
c. 示例:在用户表中设置电子邮件地址为唯一,以确保每个用户的邮箱都不重复。
- 非空约束 (not null)
a. 作用:强制某列的值不能为空,保证数据完整性。
b. 语法:`column_name data_type NOT NULL`
c. 示例:在订单表中设置“客户姓名”为非空字段,确保每个订单都有明确的下单者信息。
- 默认值 (default)
a. 作用:当插入新记录时如果没有指定某一列的具体值,则使用默认设定的值。
b. 语法:`column_name data_type DEFAULT value`
c. 示例:在创建一个产品表时,可以将“库存数量”设为10作为其默认初始值。
III. 表的关系
- 概述:关系数据库设计中的一种重要概念,用于描述不同数据表之间的联系。
2. 分类:
a. 一对多(如订单与商品)
b. 多对多(如学生和课程之间存在多个关联记录的情况)
c. 表与实体类
d. 一对一
3. 外键约束 (foreign key references)
- 作用:用于建立两个表之间的链接,确保引用完整性。
- 特点:外键列的值必须是其被参照主键列的有效值或空值。
- 语法:`FOREIGN KEY(column_name) REFERENCES table_reference(column_name)`
4. 外键的级联
- 作用:当父表中的记录发生变化时,自动更新或者删除子表中相关的记录以保持数据一致性。