[!quote] 约束
约束 是处理数据库的规则
NOT NULL非空约束:限制字段不能为 NULLUNIQUE唯一约束:保证字段所有数据唯一PRIMARY KEY主键约束FOREIGN KEY外键约束DEFAULT默认值约束:如果未指定字段的值,则采用默认值
主键
[!quote] 主键 主键 是用于唯一标识数据库表中每一行数据的字段/字段组合
[!hint] 对于主键的约束
- 每个表都需要有主键【因为这便于以后的数据操作和管理】
- 主键列不允许
null值- 包含主键值的列从不修改或更新
- 主键值不能重用【如果从表中删除某一行,其主键值不分配给新行】
sqlCREATE TABLE Vendors ( //并且还定义了该字段不能为空 vend_id CHAR(10) NOT NULL PRIMARY KEY auto increment, //定义了vend_id字段为主键 vend_name CHAR(50) NOT NULL, //此属性可以自动自增该字段的值 vend_address CHAR(50) NULL );sqlALTER TABLE Vendors //表示需要修改的表是Vendors ADD CONSTRAINT PRIMARY KEY (vend_id); //给该表添加一个主键 vend_id
外键
[!quote] 外键
外键 定义了一个表中的一个或多个字段,而这些字段来源于另一个表中的主键
- 缺点:
- 影响增删改的效率【需要检查外键关系】
- 容易引发数据库的死锁问题
如何创建外键
在创建表时指定
sqlCREATE TABLE( 字段名 数据类型, …… FOREIGN KEY(外键字段名) REFERENCES 主表(字段名) );在建表之后指定
sqlALTER TABLE 表名 add constraint FOREIGN KEY(外键字段名) REFERENCES 主表(字段名);
唯一约束
[!quote] 唯一约束 唯一约束 用于确保表中的某个列/一组列的值是唯一的
[!hint] 在唯一约束的列中,允许 NULL 值,且可以有多个 NULL 值
如何创建唯一约束
在创建表时指定
sqlCREATE TABLE 表名 ( 字段名 数据类型 UNIQUE, //使用UNIQUE关键字 ... );在建表之后指定
sqlALTER TABLE 表名 ADD CONSTRAINT [约束名称] UNIQUE (字段名);
检查约束
检查约束是一种用于限制表中列值的条件约束,可以应用于单个列或多个列的组合
如何创建检查约束
在创建表时指定
sqlCREATE TABLE 表名 ( 字段名 数据类型 CHECK (逻辑表达式), ... ); --- CREATE TABLE 表名 ( age int CHECK (age > 18), //保证了age大于18 ... );在建表之后指定
sqlALTER TABLE 表名 ADD CONSTRAINT [约束名] CHECK (逻辑表达式);
额外约束
时间约束
表中除了主键,还需要指定两个基础字段,一个是创建时间,一个是更新时间
前端动态渲染约束
如果要存储的某些值,在前端不会固定渲染的话,一般存储为 int【比如要存储性别,在前端可能渲染为男士,男生,男神,所以我们把性别存储为 int,在前端需要展示时再把 int 转换为具体的值】