主键约束(PRIMARY KEY)
描述
非空且唯一,用于唯一标识表中的一条记录
一个表中只能有一个
添加与删除
#列级约束
CREATE TABLE t_name(
id INT PRIMARY KEY,
last_name VARCHAR(15),
salary DECIMAL(10, 2)
);
#表级约束
CREATE TABLE t_name(
id INT,
last_name VARCHAR(15),
salary DECIMAL(10, 2),
CONSTRAINT pk_tName_id PRIMARY KEY(id) #没必要取名,总是PRIMARY
);
#建表后
ALTER TABLE t_name
ADD PRIMARY KEY (col_name);
#删除,实际上不会使用
ALTER TABLE t_name
DROP PRIMARY KEY;
复合主键约束
CREATE TABLE user(
id INT,
name VARCHAR(15),
password VARCHAR(25),
PRIMARY KEY(name, password)
);
name和password不能同时相同,且任何一个都不能为NULL
自增列(AUTO_INCREMENT)
描述
某个字段值自增
一个表中只能有一个
约束的列必须是键列(主键,唯一键)
数据类型必须整型
添加
CREATE TABLE t_name(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(15)
);
ALTER TABLE t_name
MODIFY id INT AUTO_INCREMENT;
#删除
ALTER TABLE t_name
MODIFY id INT;
注意
-
给自增列添加0或NULL,会自动递增添加数值(0,NULL无效)
-
一般不给自增的列赋值
外键约束(FORIGN KEY)
一般不会使用
检查约束(CHECK)
描述
检查某个字段值是否满足某要求
MySQL5.7不支持
添加
CREATE TABLE t_name(
id INT PRIMARY KEY,
salary DECIMAL(10,2) CHECK(salary > 2000)
sex CHAR(2) CHECK(sex IN('M','F')
);
#删除
ALTER TABLE t_name
MODIFY salary DECIMAL(10,2);
默认值约束(DEFAULT)
描述
给字段添加默认值,若添加时没有显式赋值,则赋值为默认值
添加与删除
CREATE TABLE t_name(
id INT PRIMARY KEY,
salary DECIMAL(10,2) DEFAULT 2500
);
#删除
ALTER TABLE t_name
MODIFY salary DECIMAL(10,2);
浙公网安备 33010602011771号