[MySQL学习笔记] 约束

目录

1 概述

2 分类

3 语法

3 外键

3.1 父表删除/更新行为

3.2 语法


1 概述

概念:约束是作用于表中字段上的规则,用于限制存储在该字段的数据。

目的:保证数据库中数据的正确、有效性和完整性。

2 分类

3 语法

约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

例如以下例子:

建表语句为: 

CREATE TABLE tb_user(
    id int AUTO_INCREMENT PRIMARY KEY  COMMENT  'ID唯一标识',
    name varchar(10) NOT NULL UNIQUE  COMMENT  '姓名' ,
    age int check (age > 0 && age <= 120)  COMMENT  '年龄' ,
    status char(1) default  '1'  COMMENT  '状态',
    gender char(1)  COMMENT  '性别'
 );

修改字段语句(部分)为:

alter table emp modify id int AUTO_INCREMENT PRIMARY KEY  COMMENT  'ID唯一标识';
alter table emp modify workno varchar(10) not null unique COMMENT '姓名';
alter table emp modify age tinyint check ( age>=0 and age <=120 ) not null COMMENT '姓名';

3 外键

外键:用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。

例如如下例子中:

emp的dept_id与dept的主键id关联,dept_id应当设置为外键。此时称dept为父表,emp为主表。

3.1 父表删除/更新行为

子表通过添加外键关联到父表后,父表删除或更新记录时会有不同的约束行为。(外键约束的是父表)

3.2 语法

外键约束的语法与其他一般约束有所不同

1.添加外键约束

可以在建表时添加外键约束:

CREATE TABLE 表名(
字段名    数据类型,
 ...
 [CONSTRAINT] [外键名称]  FOREIGN  KEY (外键字段名)   REFERENCES   主表 (主表列名) ON UPDATE 更新行为 ON DELETE 删除行为
);

也可以建表后添加外键约束:

ALTER TABLE  表名  ADD CONSTRAINT  外键名称  FOREIGN KEY  (外键字段)   REFERENCES   
主表名 (主表字段名)  ON UPDATE 更新行为 ON DELETE 删除行为;

通过ON UPDATE 更新行为 ON DELETE 删除行为来指定父表的更新/删除行为。

2.删除外键约束

ALTER   TABLE  表名   DROP  FOREIGN  KEY  外键名称;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值