MYSQL约束、添加约束、删除约束

1、约束

1.1 含义:

一种限制,用于限制表中的数据,为了保证表中数据的准确性和可靠性

1.2 分类:

主键约束PRIMARY KEY:用于保证该字段的唯一性,并且可以为空

非空约束NOT NULL:用于保证该字段的值不能为空

唯一约束UNIQUE:用于保证该字段的值就有唯一性

检查约束CHECK:限制字段值的内容

默认约束DEFAULT:用于保证字段具有默认值

外键约束FOREIGN KEY:用于限制两个表之间的关系

1.3 约束的添加分类:

列级约束

​ 列级约束既可以在列定义时声明,也可以在列定义后声明。(主键、唯一、外键)都可以存在表级和列级约束、

表级约束

​ 表级约束只能在列定义后声明。not null和deflate约束不存在表级约束,只有列级约束

1.4 添加约束的时机:

创建表时:

创建表时添加列级约束:

CREATE TABLE student(
	id INT PRIMARY KEY,#主键
	stuName VARCHAR(20) NOT NULL,#唯一
	sex CHAR(1) CHECK(sex = "男" OR sex = "女"),#检查
	seat INT UNIQUE,#非空
	age INT DEFAULT 18 #默认
)

创建表时添加表级约束:

​ 在所有字段的后面
​ 【CONSTRAINT 约束名】 约束类型(字段名)

CREATE TABLE student(
	id INT,
	stu_name VARCHAR(20),
	sex CHAR(1),
	seat INT,
	age INT,
	
	CONSTRAINT pk PRIMARY KEY(id),#主键
	CONSTRAINT uq UNIQUE(seat),#唯一
	CONSTRAINT ck CHECK(sex = '男' OR sex = '女')#检查
);

修改表时:

添加约束:

#1 添加非空约束
ALTER TABLE student MODIFY stu_name VARCHAR(20) NOT NULL;
#2 添加默认约束
ALTER TABLE student MODIFY age INT DEFAULT 18;
#3 添加主键约束(主键、唯一、外键可以有这两种方法,因为它们不仅是列级约束,还是表级约束)
ALTER TABLE student MODIFY id INT PRIMARY KEY;
ALTER TABLE student ADD PRIMARY KEY(id);
#4 添加唯一约束
ALTER TABLE student MODIFY seat UNIQUE;
ALTER TABLE student ADD UNIQUE(seat);

删除约束:

#删除非空约束
ALTER TABLE student MODIFY stu_name VARCHAR(20) NULL;
#删除默认约束
ALTER TABLE student MODIFY age INT
#删除主键约束
ALTER TABLE student DROP PRIMARY KEY;
#删除唯一约束
ALTER TABLE student DROP INDEX seat

猜你喜欢

转载自blog.csdn.net/weixin_45321793/article/details/112609324