【mysql-02-2】使用文档-建表约束
一、主键约束
1.1 主键约束
-- 使某个字段不重复且不得为空,确保表内所有数据的唯一性。
CREATE TABLE user (
id INT PRIMARY KEY,
name VARCHAR(20)
);
describe user; -----> id是不可以为null,且 key的值变为PRI(primary) !
1.2 联合主键 (页首)
1.3 自增约束 (页首)
-- 自增约束的主键由系统自动递增分配。
CREATE TABLE user3 (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);
INSERT INTO user3(name) VALUES('xiaoli');
INSERT INTO user3(name) VALUES('xiaoming');
INSERT INTO user3(name) VALUES('lisi');
1.4 添加主键约束 (页首)
1.4 删除主键 (页首)
ALTER TABLE user drop PRIMARY KEY;
二、唯一主键 (页首)
2.1 建表时创建唯一主键(unique) (页首)
ALTER TABLE user ADD UNIQUE(name);
添加"唯一约束"方式②【建表时,添加-unique(name)】
CREATE TABLE user (
id INT,
name VARCHAR(20),
UNIQUE(name)
);
添加"唯一约束"方式③【建表时,添加-name varchar(20) unique】
添加"唯一约束"方式④【建表时,添加-unique(id, name)】
添加"唯一约束"方式⑤【建表时,添加-unique(id, name)】
alter table user7 modify name varchar(20) unique;
2.2 删除唯一主键(drop) (页首)
ALTER TABLE user DROP INDEX name;
三、非空约束(NOT NULL) (页首)
3.1 建表时添加非空约束,约束某个字段不能为空 (页首)
CREATE TABLE user (
id INT,
name VARCHAR(20) NOT NULL
);
3.2 移除非空约束 (页首)
ALTER TABLE user MODIFY name VARCHAR(20);
四、默认约束-default (页首)
4.1 建表时添加默认约束,约束某个字段的默认值 (页首)
CREATE TABLE user2 (
id INT,
name VARCHAR(20),
age INT DEFAULT 10
);
4.2 移除非空约束 (页首)
ALTER TABLE user MODIFY age INT;
五、外键约束-foreign_key (页首)
-- 1. 主表(父表)classes 中没有的数据值,在副表(子表)students 中,是不可以使用的;
-- 2. 主表中的记录被副表引用时,主表不可以被删除。
实例: (页首)
CREATE TABLE classes (
id INT PRIMARY KEY,
name VARCHAR(20)
);