MySQL - 约束

1. 约束保证数据的完整性和一致性
2. 约束分为表级约束和列级约束。
3. 约束类型包括:
    not null(非空约束)
    primary key(主键约束)
    unique key(唯一约束)
    default(默认约束)
    foreign key(外检约束)

- 外键约束: foreign key
1、保持数据一致性,完整性
2、实现一对一或一对多关系。

- 外键约束的要求:
1、父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
2、数据表的存储引擎只能为InnoDB.
3、外键列和参照列必须具有相似的数据类型。其中数字的长度或知否有符号位必须相同;而字符的长度则可以不同。
4、外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。

- 编辑数据表的默认存储引擎
mysql配置文件:
default-storage-engine=INNODB

创建主表:

145142_Vusu_218078.png

145153_ZZuI_218078.png

创建子表:

145417_kfgE_218078.png

 

145533_Fo9a_218078.png

 

外键约束的参照操作:

1、cascade:从父表删除或更新且自动删除 或更新子表中匹配的行

2、set null:从父表删除或更新行,并设置子表中的外键列为null。如果使用该选项,必须保证子表列没有指定not null

3、restrict:拒绝对父表的删除或更新操作。

4、no action:标准sql的关键字,在mysql 中 与restrict相同

创建如下表:

164235_kU4z_218078.png

164331_nH7l_218078.png

指,在父表中删除或更新相应的行 也会更新字表中的记录。

父表中的数据如下:

164743_O6tA_218078.png

子表中的数据如下:

164714_2H3o_218078.png

现在删除一条记录:

164837_cXhm_218078.png

164850_a0iX_218078.png

现在只剩下一条记录,现在看看子表中的数据,发现,子表中对应的数据也没了。

164920_PWnh_218078.png

 

转载于:https://my.oschina.net/gabriel1215/blog/809753

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值