MySQL约束

约束的分类:

             ① not null (非空约束)
             ② unique  (唯一性约束)
             ③ primary key (主键约束)
             ④ foreign key (外键约束)
             ⑤ check (检查约束)
             ⑥ default (默认值约束)

如何查看表中的约束:

SELECT * FROM information_schema.table_constraints
WHERE table_name = '表名';

① not null (非空约束)

    CREATE TABLE时添加约束:

CREATE TABLE test1(
   id INT NOT NULL,
   last_name VARCHAR(15) NOT NULL,	
   email VARCHAR(25),
   salary DECIMAL(10,2)
);

    ALTER TABLE 时增加约束、删除约束:

#在AlTER TABLE时添加约束
ALTER TABLE test1
MODIFY email VARCHAR(25) NOT NULL;


#在ALTER TABLE时删除约束
ALTER TABLE test1
MODIFY email VARCHAR(25) NULL;

② unique  (唯一性约束)

CREATE TABLE时添加约束:

CREATE TABLE test2(
	id INT UNIQUE,#列级约束
	last_name VARCHAR(25),
	email VARCHAR(25),
	salary DECIMAL(10,2),
	
	#表级约束
	CONSTRAINT uk_test2_email UNIQUE(email)
);

ALTER TABLE 时增加约束、删除约束:

#在ALTER TABLE时添加约束
#方式1
ALTER TABLE test2
ADD CONSTRAINT uk_test2_salary UNIQUE(salary)
#方式2
ALTER TABLE test2
MODIFY last_name VARCHAR(20) UNIQUE


#删除唯一性约束
-- 添加唯一性约束的列上也会自动创建唯一索引。
-- 删除唯一约束只能通过删除唯一索引的方式删除。
-- 删除时需要指定唯一索引名,唯一索引名就和唯一约束名一样。
-- 如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同;如果是组合列,那么默认和()中排在第一个的列名相同。也可以自定义唯一性约束名。

ALTER TABLE test2
DROP INDEX last_name;

ALTER TABLE test2
DROP INDEX uk_test2_salary

复合的唯一性约束

CREATE TABLE test3(
	id INT,
	`name` VARCHAR(15),
	`password` VARCHAR(25),
	
	#表级约束
	CONSTRAINT uk_test3_nameandpassword UNIQUE(`name`,`password`)
);

③ primary key (主键约束)

④ foreign key (外键约束)

⑤ check (检查约束)

⑥ default (默认值约束)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值