mysql约束——添加与删除命令

首先创建一张tb1表:

CREATE TABLE tb1(
    -> id INT UNSIGNED,
    -> username VARCHAR(20),
    -> age INT UNSIGNED
    -> );

1.主键约束:(只能有一个主键约束)

  生成表后添加主键约束:

 ALTER TABLE tb1 ADD CONSTRAINT PK_tb1_id PRIMARY KEY(id);

    或者(CONSTRAINT PK_tb1_id表示给tb1表的主键约束起一个名字PK_tb1_id,也可以不起名字)

ALTER TABLE tb1 ADD PRIMARY KEY(id);

  创建表时添加主键约束:

CREATE TABLE tb1(
    -> id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    -> username VARCHAR(20),
    -> age INT UNSIGNED
    -> );

  删除主键约束:

ALTER TABLE tb1 DROP PRIMARY KEY;

2.唯一约束(可有多个唯一约束)

生成表后添加:

ALTER TABLE tb1 ADD UNIQUE (username);

创建表时添加:

 CREATE TABLE tb1(
    -> id INT UNSIGNED,
    -> username VARCHAR(20),
    -> age INT UNSIGNED,
    -> UNIQUE KEY(username)
    -> );

删除唯一约束:(先查看约束名,再删除约束)

show create table tb1;

此时会出现:

mysql约束——添加与删除命令_第1张图片

再利用名称去删除约束:

ALTER TABLE tb1 DROP INDEX username;

3.外键约束

再创建一张tb2表:

CREATE TABLE tb2(
    -> id INT UNSIGNED PRIMARY KEY,
    -> username VARCHAR(20),
    -> email VARCHAR(20),
    -> tb1_id INT UNSIGNED
    -> );

生成表后添加(表tb1中id字段必须为主键或唯一约束修饰的字段):

ALTER TABLE tb2 ADD FOREIGN KEY(tb1_id) REFERENCES tb1(id);

删除主键约束:(同样需要查询外键约束名,再删除外键约束)

show create table tb2;
mysql约束——添加与删除命令_第2张图片
ALTER TABLE tb2 DROP FOREIGN KEY tb2_ibfk_1;

4.非空约束:

生成表后添加非空约束:

ALTER TABLE tb1 MODIFY username VARCHAR(20) NOT NULL;

或者

ALTER TABLE tb1 CHANGE age age INT UNSIGNED NOT NULL;

创建表时添加约束:

CREATE TABLE tb1(
    -> id INT UNSIGNED,
    -> username VARCHAR(20) NOT NULL,
    -> age INT UNSIGNED
    -> );

删除非空约束:(与添加语句相似,只是将not null删除)

ALTER TABLE tb1 MODIFY username VARCHAR(20);

ALTER TABLE tb1 CHANGE username username VARCHAR(20);

5.默认约束

生成表后添加约束:

ALTER TABLE tb1 ALTER age SET DEFAULT 11;
mysql约束——添加与删除命令_第3张图片

删除默认约束:

ALTER TABLE tb1 ALTER age DROP DEFAULT;


你可能感兴趣的:(mysql)