MySQL---约束,详细并且有代码解释

约束是作用于表中字段上的规则,用于限制存储在表中的数据。
目的:保证数据库中数据的正确性,有效性和完整性。
约束的种类和关键字:
1.非空约束 NOT NULL
2.唯一约束 UNIQUE 保证该字段都是唯一的,不能重复
3.主键约束 primary key 定义主键的,要求非空且唯一
4.默认约束 DEFAULT 保存数据时,如果没有指定该字段的值,采用默认值
5.检查约束 check 保证字段的值满足某一个数据
6.外键约束 foreign key 在两张表中建立链接,保证数据的一致性和完整性。
约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。
约束演示:
根据需求,完成表的构建
字段名 字段含义 字段类型 约束条件
id ID唯一标识 int 主键,并且自动增长
name 姓名 varchar(10) 不为空,并且唯一
age 年龄 int 大于0,并且小于等于120
status 状态 char(1) 没有指定该值,默认为1
gender 性别 char(1) 无
在MySQL语句中,自动增长的关键字是:auto_increment 可以实现自动增长。
一个字段中可以添加多个约束。
create table yuan(
id int primary key auto_increment,
name varchar(10) not null unique,
age tinyint check ( age>0&&yuan.age<120 ),
status char(1) default ‘1’,
gender char(1)
);
这就是最后u创建出来的表格。
外键约束用来让两张表建立连接,从而保证数据的完整性和一致性。
被关联的表称为父表,有外键约束的表为子表
我们建立一个表格,名为dept部门表格,再用到之前创建的员工表,通过外键约束让这两个表格建立联系。
添加外键的方式有两种,一种是在创建表格时,直接在创建语句中添加外键约束:
constraint [外键名称] foreign key(外键字段名) reference 主表(主表列名)
还有一种是主表创建好了以后,直接添加外键约束。
ALter table 表名 ADD constraint 外键名称 foreign key (外键字段名) reference 主表(主表列名)
代码:
alter table emp add constraint fk_emp_dept_id foreign key (dept_id)references dept(id);
删除外键
alter table 表名 drop foreign key 外键名
代码示例:
alter table emp drop foreign key fk_emp_dept_id;
外键删除更新行为
在父表中删除或更新对应记录时,首先检查是否有对应外键,如果有,则不允许删除/更新(NO action)
cascade:在父表中删除或更新对应记录时,首先检查是否有对应的外键,如果有,那么子表也会进行对应的删除或更新。
set NULL 就是子表中对应的外键里更新为NULL
set default,变更时,将外键设置为默认值
我们可以在添加外键时,使用语法来完成指定
例如:

alter table emp add constraint fk_emp_dept_id foreign key (dept_id)references dept(id) on UPDATE cascade on delete cascade ;
如果是使用了删除的功能,在主表中删除对应的字段,那么在子表中也会将对应的删除掉
这里有一个值得大家注意的点,就是我们在已知主表的情况下去建立子表,并且与其建立外键链接的时候,我们可以在创建子表的时候写出需要建立外键连接的字段为"主表名_字段名"这样会更加清晰简洁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值