约束[下篇]
主键约束(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);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!