mysql 约束名_MySQL(11)---约束

MySQL(11)---约束

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

先把Mysql几种约束列出来:

主键约束 外键约束 唯一性约束 非空约束 默认值约束 自增约束

MySQL不支持check约束,但可以使用check约束,而没有任何效果。

一、语法

不多说理论,说下语法和示例就好。

1、建表时直接建约束

drop table student;

CREATE TABLE student(

id INT PRIMARY KEY auto_increment,#主键 自增

name VARCHAR(20) NOT NULL UNIQUE,#非空 唯一

xh INT UNIQUE,#唯一

age INT DEFAULT 18 #默认约束

)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生表';

-- 上面和下面是一样的,只不过是另一种写法

drop table student;

CREATE TABLE `student` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(20) NOT NULL,

`xh` int(11) DEFAULT NULL,

`age` int(11) DEFAULT '18',

PRIMARY KEY (`id`),

UNIQUE KEY `name` (`name`),

UNIQUE KEY `xh` (`xh`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生表';

2、查看约束

这里命令是查看索引的命令,因为建立主键约束会自动的建立主键索引。

同样建立唯一约束也会自动建立唯一索引。

-- 这里只能看到主键约束,唯一约束。

SHOW INDEX FROM 表名;

3、单独建约束

上面的约束是建表时候建的,下面是在表建好后独立添加。

-- 1.添加非空约束

ALTER TABLE student MODIFY COLUMN id INT auto_increment;

-- 2.添加默认约束

ALTER TABLE 表名 MODIFY COLUMN 字段名 INT DEFAULT 16;

-- 3、主键约束

ALTER TABLE 表名 ADD PRIMARY KEY(字段名);

-- 4、唯一约束

ALTER TABLE 表名 ADD UNIQUE(字段名); #字段名可以多个,多个用逗号隔开

-- 5、主键自增

# 注意自增一张表只有一个,同时只能在主键上

ALTER TABLE 表名 MODIFY COLUMN 字段名 INT auto_increment;

4、删除约束

-- 1、删除非空约束

ALTER TABLE 表名 MODIFY COLUMN 字段名 VARCHAR(20) NULL;

-- 2、删除主键

-- 这里需要注意如果主键设置为自增的情况下是不能删除成功的,因为自增只能设置在主键上,你删主键自增还存在当然不行。

ALTER TABLE 表名 DROP PRIMARY KEY;

-- 3、删除唯一

ALTER TABLE 表名 DROP INDEX 字段名;

这应该是我最短的博客了,哈哈

只要自己变优秀了,其他的事情才会跟着好起来(少将12)

你可能感兴趣的:(mysql,约束名)