约束_主键约束_自动增长和约束_外键约束
约束_主键约束_自动增长
1. 概念:如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长
-- 创建表时添加约束 CREATE TABLE stu( id INT PRIMARY KEY AUTO_INCREMENT, -- 给id添加主键约束,id自动增长 NAME VARCHAR(20) );
SELECT * FROM stu;
INSERT INTO stu VALUES(NULL,'qqq');
-- 删除自动增长
ALTER TABLE stu MODIFY id INT;
-- 添加自动增长
ALTER TABLE syu MODIFY id INT AUTO_INCREMENT;
约束_外键约束
1. 在创建表时,可以添加外键
语法:
create table 表名(
...
外键列
constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
)
-- 解决方案:分成2张表 -- 创建部门表(id,dep_name,dep_location) -- 一方,主表 CREATE TABLE department ( id INT PRIMARY KEY AUTO_INCREMENT, dep_name VARCHAR(20), dep_locationion VARCHAR(20) ); -- 创建员工表(id,name,age,dep_id) -- 多方,从表 CREATE TABLE employee( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT, dep_id INT, -- 外键对应主表的主键 CONSTRAINT emp_dept_fk FOREIGN KEY (dep_id) REFERENCES department(id) -- 设置外键约束 ); -- 添加2个部门 INSERT INTO department VALUES(NULL,'研发部','广州'),(NULL,'销售部','深圳'); SELECT * FROM department; -- 添加员工,dep_id 表示员工所在的部门 INSERT INTO employee (NAME,age,dep_id) VALUES ('张三',20,1); INSERT INTO employee (NAME,age,dep_id) VALUES ('李四',21,1); INSERT INTO employee (NAME,age,dep_id) VALUES ('王五',20,1); INSERT INTO employee (NAME,age,dep_id) VALUES ('老王',20,2); INSERT INTO employee (NAME,age,dep_id) VALUES ('大王',22,2); INSERT INTO employee (NAME,age,dep_id) VALUES ('小王',18,2);
设置了主键没有5选项所以进行报错
-- 删除外键
ALTER TABLE employee DROP FOREIGN KEY emp_dept_fk;
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
-- 添加外键
ALTER TABLE employee ADD CONSTRAINT emp_dept_fk FOREIGN KEY (dep_id) REFERENCES department(id);
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主键名称(主表列名称);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix