7月27日
约束
一.查看约束
SHOW CREATE TABLE table_name
二.主键约束
1.创建表中加入主键
CREATE TABLE student( id int PRIMARY KEY, -- 设置主键 name VARCHAR(20) );
2.假如表中没有主键设置id为主键
ALTER TABLE student MODIFY id int PRIMARY KEY; ALTER TABLE student ADD PRIMARY KEY(id); ALTER TABLE student ADD CONSTRAINT pk_name PRIMARY KEY(id); -- pk_name为约束名
3.删除主键
ALTER TABLE student DROP PRIMARY KRY;
三.自增长列
特点:
-
标识列必须和一个Key搭配(Key指主键、唯一、外键....)
-
一个表最多有一个标识列
-
标识列的类型只能是数值型
-
标识列可以通过 SET auto_increment_increment = 3; , SET @@auto_increment_increme
nt = 3; 设置步长(全局),可以通过插入行时手动插入标识列值设置起始值。
如果设置步长会从 1 + 步长 依次递增。
如果表中已有数据,会按照 1 + 步长进行计算,如果这个 值 已有则再加直到没有
CREATE TABLE student( id int PRIMARY KEY AUTO_INCREMENT,-- 自增长与主键 name VARCHAR(20) );
设置自增长列的初始值
CREATE TABLE student( id int PRIMARY KEY AUTO_INCREMENT,-- 自增长与主键 name VARCHAR(20) )AUTO_INCREMENT=10;
ALTER TABLE student AUTO_INCREMENT = 10;
修改设置自增长
alter table 表名称 modify column id int auto_increment;
删除自增长列
ALTER TABLE 表名称 MODIFY COLUMN id INT;
四.唯一约束
CREATE TABLE student( id int PRIMARY KEY AUTO_INCREMENT,-- 自增长与主键 name VARCHAR(20) UNIQUE, # 唯一约束 );
修改唯一约束
alter table 表名称 ADD unique(列名称); ALTER TABLE student ADD CONSTRAINT uq_name UNIQUE(name);
删除唯一约束
ALTER TABLE student DROP CONSTRAINT name; [alter table 表名称 drop index 设置唯一时的名称;] -- 删索引
五.默认约束
CREATE TABLE student( id int DEFAULT NULL,# 默认约束 name VARCHAR(20) UNIQUE, # 唯一约束 );
修改默认值
alter table 表名称 modify column 列名 列类型 default 默认值;
删除
alter table 表名称 modify column 列名 列类型; -- 将默认值改为 NULL ALTER TABLE tb_name ALTER col_name DROP DEFAULT; -- 删除了默认值,新增时必须有值
创建表时,不写默认值都默认 NULL (在无非空约束的情况下)
默认约束能和主键约束可以同时存在
默认约束不能和 AUTO_INCREMENT 同时使用
六.非空约束
NOT NULL :非空,用于保证该字段的值不能为空。
CREATE TABLE student( id int NOT NULL,# 非空约束 name VARCHAR(20) UNIQUE, # 唯一约束 );
修改非空约束
alter table 表名称 modify column 列名 列类型 not null;
删除
alter table 表名称 modify column 列名 列类型 [null];
七.外键约束
外键约束是一种数据库约束,用于确保在一个表中的数据与另一个表中的数据保持一致。它通常用于维护两个表之间的关系