MySQL学习笔记4:完整性约束受限字段
直觉点:如果插入的数据不符合极限要求,数据库管理系统拒绝执行操作。
设置表的主键
主键可以识别表中每个消息的唯一性,如身份证号码和人的关系。
一个人可以有相同的名字,但身份证号码是唯一的。
创建主键的目的是在表中快速找到一条信息。
单字段主键
复制代码代码如下所示:
创建表学生(
int主键,
名称varchar(20),
性别>布尔值
>;
查询OK,0行受影响(0.09秒)
创建了三个字段,其中id是主键
多字段主键
多字段的主键由多个属性组成,在定义属性后,主键是统一的。
复制代码代码如下所示:
MySQL >创建表格里(
id > int,
course_id -> Int,
浮点数,
-主键(ID,course_id)
>;
查询OK,0行受影响(0.11秒)
的学生表有三个字段,其中ID和course_id结合可以确定一个单一的记录
设置表的外部键
表的外部键对应主键,例如表A中的id是外键,表B中的id是主键。
可以说,父表表B、表A为子表。
设置外部键的作用是建立与父表的连接,例如删除表B中带有id 123的学生,以及表A中的ID记录,因为123正在消失。
这样做的目的是确保表的完整性。
复制代码代码如下所示:
MySQL >创建表3(
int主键,
course_id -> Int,
教师varchar(20),
FK外键约束(ID,course_id)>
参考文献里(ID,course_id)
>;
查询OK,0行受影响(0.12秒)
这里的学生3创建表,在约束的FK是外键的别名,和国外的关键是现场设置外键。
引用后的内容表示父表和父表中的主键。
需要注意的是,父表中的主键不是空的,主键和外键的数据类型是一致的。
设置表的非空约束
对非空间的良好理解是,设置表中字段的值不能为空(null)。
如果在已设置此约束条件的字段中插入空值,数据库系统将出错。
复制代码代码如下所示:
MySQL >创建表student4(
int非空> id,
名称varchar(20),
性别>布尔值
>;
查询OK,0行受影响(0.10秒)
这里的非null是约束条件。
设置表的唯一性约束
惟一性是不能重复表中字段的值,并设置表的唯一性约束。
也就是说,在表中添加一个字段的唯一性
复制代码代码如下所示:
MySQL >创建表student5(
唯一的id,
名称varchar(20)
>;
查询OK,0行受影响(0.10秒)
这里的id字段是不可重复的。
自动增加设置表的属性值。
auto_increment主要用于自动生成新的记录插入表中唯一的ID
一个表只能有一个领域使用auto_increment约束
这个字段必须是主键的一部分。
复制代码代码如下所示:
MySQL >创建表student6(
主关键字auto_increment -> ID,
名称varchar(20)
>;
查询OK,0行受影响(0.12秒)
这里的ID是主键,将自动增加ID值,如1,2,3,4…
需要注意的是,该auto_increment约束的值必须是一个整数类型的重要
设置表中属性的默认值。
如果在字段中没有赋值,则在表中插入一条新记录。
然后数据库系统会自动为字段分配一个默认值。
复制代码代码如下所示:
MySQL >创建表student7(
int主键,
得分-默认值为0
>;
查询OK,0行受影响(0.10秒)