MySQL完整约束性_mysql完整性约束

六 完整性约束:

not null default:

如果单独设置not null ,不能插入空值

如果设置了not null, 又指定了default, 可以插入空值, 默认值生效

unique key: 单列唯一

unique(id),

unique(name)

create table t1(id int not null);

联合唯一: 多行记录中只要有一列字段的值不同就可以, 完全一致不行

unique(id, name)

primary key : 单列主键 不能为空, 唯一

化学反应 : not null + unique //这样设置会显示成PRI 但与设置成primary 不同,

联合主键 :create table t9(

id int,

name varchar(10),

primary key(id,name)

);

一行记录中 id 和name 有一项不同即可

auto_increment : 自动增长,默认+一个步长, 数字

自动增长, 如果删除已经创建的 ID 插入下一条记录时候 依然会增长, 旧的ID仍然占据,

再次插入新的数据 时候, ID在最后一条记录的ID上面增长

truncate : 清空表, 删除所有记录, ID 重新插入数据时候, ID 初始化0

truncate student; //清单表student

清空表区分delete和truncate的区别:

delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。

truncate table t1;数据量大,删除速度比上一条快,且直接从零开始。

起始偏移量: auto_increment_offset

步长: auto_increment_increment

show variables like "auto_inc%"; // 查询可用的开头是quto_inc的词

set session quto_increment_increment=5; //设置步长, 当次连接中有效,

set global auto_increment_increment=3; //设置步长是3, 全局配置, 之后都生效

set global auto_increment_offset=3; //设置起始偏移量 ,起始值3

tip: 如果auto_increment_offset的值大于auto_increment_increment的值,则auto_increment_offset的值会被忽略

设置步长和偏移量之后,需要重登录

foreign key: 外键 (关联其他表, 的数据, 省空间//)

constraint 外键名 foreign key((副表)本表字段) references 主表名(字段) //这样创建数据不同步,

constraint 外键名 foreign key((副表)本表字段) references 主表名(字段)

on delete cascade //同步删除

on update cascade //同步更新

三种关系: 一对一

一对多

多对一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值