首先创建一张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;
此时会出现:
再利用名称去删除约束:
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;
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;
删除默认约束:
ALTER TABLE tb1 ALTER age DROP DEFAULT;