MySQL约束条件
not null
# not null (是否可以为空) create table stu(id int(10), name char(12) not null, sex enum('male','female') );
#
not null + default(默认值)
create table stu2( id int, name char(12) not null, phone char(11), sex enum('male','female') not null default 'male' );
#
unique(唯一)
create table stu3( id int, name char(12), ident char(18) unique );
unique(联合唯一)
ip + port 192.168.16.13 mysql 3306 192.168.16.13 kugou 8080 192.168.16.13 flask 5000 192.168.16.15 mysql 3306 192.168.16.16 mysql 3306 create table service( id int, ip char(15), name char(15), port int(5), unique(ip,port) );
#
auto_increment
自增的条件(这一列必须是数字,这一列必须是uniuqe)
create table userinfo(
id int unique auto_increment,
name char(12),
password char(32)
);
primary key(主键)
primary key(主键) == not null 非空 + unique 唯一
create table userinfo3(
id int unique,
username char(18) not null unique,
password char(32),
ident char(18) not null unique
);
一张表中只能有一个主键 : 主键从约束的角度上来说 就是非空且唯一的
只不过,非空+唯一可以设置多个字段,但是主键只能给一个表中的一个字段设置
(一般情况下,我们给id字段设置为主键,不允许一张表不设置主键)
create table pri2(
id1 int primary key,
id3 int unique not null
);
联合主键
约束多个字段各自不能为空,并且联合唯一
create table pri4(
id1 int,
num int,
primary key(id1,num)
);
#
外键
foreign Key(被关联的项) references 被关联的表(待关联的项)
# 表2 班级表 cid class_name
create table clas(
cid int primary key,
class_name char(20)
);
# 表1 学生表 id name class_id
create table stu(
id int primary key ,
name char(18),
class_id int,
foreign Key(class_id) references clas(cid)
);
级联更新,级联删除
(关联后可以修改也可以删除)on update cascade on dalete cascade
create table stu(
id int primary key ,
name char(18),
class_id int,
foreign Key(class_id) references clas(cid)
on update cascade on dalete cascade
);
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
· 一个适用于 .NET 的开源整洁架构项目模板
· AI Editor 真的被惊到了
· API 风格选对了,文档写好了,项目就成功了一半!
· 【开源】C#上位机必备高效数据转换助手
· 关于linux网桥(Linux Bridge)的一些个人记录