Mysql完整性约束

本文深入解析SQL中的各种约束,包括非空约束NOTNULL、唯一约束UNIQUE、主键约束PRIMARYKEY、自增约束auto_increment及外键约束FOREIGNKEY。详细阐述了每种约束的用法和特性,以及如何在数据库表中正确应用。

1. NOT NULL

非空约束,指定某列不能为空;

设置严格模式:

  不支持对not null字段插入null值
  不支持对自增长字段插入null
  不支持text字段有默认值
直接在mysql中生效(重启失效):
mysql>set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; 
配置文件添加(永久有效):
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
默认值设置语句:

default 默认值 

2. UNIQUE

唯一约束,不能重复,指定某列或者几列组合不能重复,但是null能写入多次     
联合唯一:

语法:unique(ip,port),表示两个行     数据对应的ip和port不能完全相同。

3. PRIMARY KEY

主键,指定该列的值可以唯一地标识该列记录;
第一个被定义为非空+唯一的那一列会被定义为这张表的主键;

一张表只能定义一个主键;
可以通过primary key定义;
联合主键:primary key(ip,port),表示两个行数据对应的ip和port不能完全相同。(系统会在所定义的两个数据后面加上默认值  ’’ -–> > 一个空的字符串)

4. auto_increment

自增,只能对数字有效,自带非空约束;
至少是unique真的约束之后才能使用;

5. FOREIGN KEY

外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性

create table t1(
       id int primary key auto_increment,
       name char(12) not null,
       gender enum('male','female') default 'male',
       class_id int unsigned,
       foreign key(class_id) references class(cid) on update cascade on delete cascade
)                    
on delete cascade 尽量不用

Cascade -->级联

foreign key(自己的字段) references 外表(外表字段)

外表字段必须至少“唯一”的

 
 
 







评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值