MySQL:约束&主键&唯一键

本文详细解释了SQL数据库中的各种约束,包括Null约束(允许或禁止空值)、默认约束(指定默认值)、主键(标识唯一性)、自增长(自动递增)、唯一键(确保列值唯一)、以及外键(表间关系的引用)。这些约束确保数据的一致性和准确性。
摘要由CSDN通过智能技术生成

表的约束:表中一定有约束,通过约束让插入表中的数据是符号预期的
约束的本质是通过技术手段,倒逼程序员插入正确的数据

Null约束

在这里插入图片描述
这里的Null表示在插入的时候,该属性能否为空,如果是NO,则插入时候必须有数据

create table t1(
id int not null
);

  • 该语句显示出来就是NO

default约束

create table t1(
id int not null
age tinyint default 18,
);
insert into t1 (id) values (‘张三’);

id不能插null,age可以插null,如果插入时候省略age,默认age是18
not null default,default不为空就行

列描述

create table t1(
id int not null comment ‘用户id号’
age tinyint default 18,
);
这就是一个单纯的注释

zerofill

上图中,int括号中的数字是11,并且有zerofill修饰时,存储某个数的长度不够11位就用0填充
int最大取值范围是21亿多,共10位,另一位是符号位

主键

一张表有一列信息标定数据的唯一性
主键只有一个,要么没有
一个主键可以被添加到一列,或者多列上
primary key修饰
在这里插入图片描述
alter table 表名 add primary key (字段)
alter table 表名 drop primary key

create table t2(
id int,
name varchar(20) not null,
primary key(id, name)
);

  • id和name合起来是一个主键
    也就是插入的时候,id和name不能同时一样

自增长

create table t2(
id int primary key auto_increment,
name varchar(20) not null
);
在这里插入图片描述

默认从1开始插入

唯一键

与主键功能类似,插入时值可以为NULL
主键用来标记某个属性在整张表中的唯一性
唯一键用来保证同一列的值之间不会重复,也是一种唯一性

create table t4(
id int unique,
name varchar(20) not null
);
在这里插入图片描述

主键和唯一键两者都有唯一性

一个列设置成主键,但是其他列也需要有唯一性
例如:每个人身份证号是主键,但是每个人的电话号码也需要唯一性保证

外键

用于主表和从表的关系
外键一般都在从表中,用于和依附主表中的某一列(该列是被主键和唯一键修饰的)

create table student(
id int primary key,
name varchar(20),
tel char(11) unique,
class_id int,
foreign key(列名) references 主表名(主表中的某一列)
);

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值