mysql唯一约束和非空_MySQL||唯一约束(Unique Key)和非空约束(NOT NULL)

唯一约束

MySQL唯一约束(Unique Key)要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。

非空约束

MySQL 非空约束(NOT NULL)可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。

非空约束(Not Null Constraint)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。

在创建表时设置唯一约束

在定义完列之后直接使用 UNIQUE 关键字指定唯一约束,语法规则如下:

UNIQUE

创建表时可以使用 NOT NULL 关键字设置非空约束,具体的语法规则如下:

NOT NULL;

示例:创建一个学生表,设名字不能为空值且唯一

CREATE TABLE student4 (

CODE INT PRIMARY KEY,

NAME VARCHAR (50) NOT NULL UNIQUE,-- 加非空约束 -- 唯一约束

sex CHAR (2) DEFAULT '男',

phone CHAR (18),

age INT CHECK (age BETWEEN 17 AND 22),

enter_time date

);

DESC student4;

INSERT INTO student4(CODE,NAME,sex,phone,age,enter_time)

VALUES(

1112,

'王健林',

'男',

'19887678767',

21,

now()

);

INSERT INTO student4

VALUES(

1113,

'王健林',

'男',

'13886787679',

20,

now()

);

26e1683cb4ae0b6ae38aee7008c69e92.png

修改约束条件

和默认值约束一样,修改约束条件的语法相似

ALTER TABLE

CHANGE COLUMN

NOT NULL;

ALTER TABLE ADD CONSTRAINT UNIQUE();

比如我现在想把上面的手机号修改成非空且唯一,操作如下:

ALTER TABLE student4

CHANGE COLUMN phone

phone CHAR(18) NOT NULL UNIQUE;

DESC student4;

INSERT INTO student4(CODE,NAME,sex,phone,age,enter_time)

VALUES(1118,'刘强东','男','19887678767',21,now());

INSERT INTO student4

VALUES(1119,'李彦宏','男','19887678767',20,now());

6b24ac00896792f2f11dc4257e89d91e.png

删除操作就是将他们的条件赋空值或者清除掉

ALTER TABLE DROP INDEX ;

ALTER TABLE

CHANGE COLUMN NULL;

感兴趣的读者可以自行调试,这里不再展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值