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

本文介绍了MySQL中的唯一约束(Unique Key)和非空约束(NOT NULL)。唯一约束确保列或列组合的值不重复,允许一个空值;非空约束则要求字段值不能为空。创建表时可通过UNIQUE和NOT NULL关键字设置这些约束,并可通过ALTER TABLE语句修改约束条件。

唯一约束

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()
);

修改约束条件

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

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());

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

ALTER TABLE <表名> DROP INDEX <唯一约束名>;
ALTER TABLE <数据表名>
CHANGE COLUMN <字段名> <字段名> <数据类型> NULL;

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值