MySQL的约束

一:主键约束(PK)

最显著的特征是主键列名是唯一的,不允许重复。一个表只能有一个主键约束,且主键约束的列不接受空值。

1:在建表时直接设置主键约束:

CREATE TABLE 表名(
 id int primary key,
 .....);
 
 create table 表名(
 id int,
 age int,
 primary key (id)
 );

创建student表,且设id为主键

image-20230727192548522

2:在表中给某一列设置主键约束;

alter table 表名 modify 列名 数据类型 primary key;
​
alter table 表名 add primary key(列名);

将student表中的id设置为主键;

image-20230727193930389

3:删除主键;

alter table 表名 drop primary key;

删除student表的主键约束;

image-20230727194641139

二:自增长列

自增长列是数值(int,float,double)类型的,其值是有数据库自动维护的,是永远不会重复的。在MySQL数据库中,自增长列是主键列或者是唯一键列。一个表只能有一个标识列。

注意:当一个表中自增长列和主键列是同一个列名时,添加数据的时候如果不主动设置,会按照自增长列的步长自己添加。

1:在创建表时设置标识列。

create table student (
id int auto_increment,
age int,
name varchar(20)
);

创建student表,且设置id为自增长列且为主键

image-20230727200534415

2:在修改表时设置标识列;

alter table 表名 add 列名 auto_increment;

给student表加自增长列;

image-20230727201444434

3:删除自增长列

alter table 表名 modify column 列名+数据类型

删除student表的自增长列;

image-20230727201242501

4:给标识列设置步长;

set auto_increment_increment=数字;

设置步长(全局),可以通过插入行时手动插入标识列值设置起始值。

如果设置步长会从 1 + 步长 依次递增。
如果表中已有数据,会按照 1 + 步长进行计算,如果这个 值 已有则再加直到没有

image-20230727202303860

5:给标识列设置初始值

法一:create table student (
id int auto_increment,
age int,
name varchar(20)
)auto_increment=初始值;
法二
ALTER TABLE emp AUTO_INCREMENT = 10;
alter table 表名称 modify column id int auto_increment;

三:唯一约束(UQ)

唯一约束里面,设置为唯一约束的列可以为空值,但是不能重复。且一张表可以存在多个唯一约束。在唯一约束中,当创建和表结构一样的表时候,如果是….like..,则连约束条件这些都一样,如果是as,则只是复制了结构,没有复制约束条件这些。唯一约束创建后会自动创建一个唯一索引

1:在表中添加唯一约束的语法结构;

alter table 表名 add constraint uq_namme unique(列名);
或
alter table 表名称 ADD unique(列名称);

在student表中,给student的name添加唯一约束;

image-20230727205229665

2:在创建表时,添加唯一约束;

CREATE TABLE `table_name` (
`id` int NOT NULL,
`name` varchar(20) UNIQUE, # 唯一约束
);

3:删除唯一约束;

ALTER TABLE 表名 ADD UNIQUE(列名);

四:默认约束(DF);

为列中的值设置默认值,default ….,如果已经定了值,默认值就无效了

创建表时,不写默认值都默认 NULL (在无非空约束的情况下)

默认约束能和主键约束可以同时存在

默认约束不能和 AUTO_INCREMENT 同时使用

1:默认约束的语法

创建表时
CREATE TABLE `table_name` (
`id` int DEFAULT NULL,# 默认约束
`name` varchar(20) unique,
);
​
表中设置默认约束
alter table 表名称 modify column 列名 列类型 default 默认值;
​
删除默认约束
alter table 表名称 modify column 列名 列类型; -- 将默认值改为 NULL
​
ALTER TABLE 表名 ALTER 列名 DROP DEFAULT; -- 删除了默认值,新增时必须有值

五:非空约束;

1:非空约束的语法

创建表时
CREATE TABLE `table_name` (
`id` int NOT NULL, # 非空约束
`name` varchar(20),
);
​
在表中添加
alter table 表名称 modify column 列名 列类型 not null;
删除
alter table 表名称 modify column 列名 列类型 [null];
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值