1.创建一个部门表
CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, deptName VARCHAR(20)) ENGINE=INNODB DEFAULT CHARSET=utf8;INSERT INTO dept(deptName) VALUES('技术部');INSERT INTO dept(deptName) VALUES('人力资源部');INSERT INTO dept(deptName) VALUES('市场部');INSERT INTO dept(deptName) VALUES('总经办');DROP TABLE dept;DROP TABLE employee;SELECT * FROM dept;
2.创建一个员工表
CREATE TABLE employee( id INT PRIMARY KEY AUTO_INCREMENT, empName VARCHAR(20), deptId INT, -- CONSTRAINT 表示约束 -- fk_emlyee_dept 表示约束的名字 -- FOREIGN KEY(deptId) 表示给当前表的deptId字段添加约束 -- REFERENCES dept(id) 当前表的deptId字段去引用dept表的id字段 -- ON UPDATE CASCADE 级联更新 -- ON DELETE CASCADE 级联删除 CONSTRAINT fk_emlyee_dept FOREIGN KEY(deptId) REFERENCES dept(id) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=INNODB DEFAULT CHARSET=utf8;INSERT INTO employee (empName,deptId) VALUES('小明',1);INSERT INTO employee (empName,deptId) VALUES('小虎',2);INSERT INTO employee (empName,deptId) VALUES('小强',4);INSERT INTO employee (empName,deptId) VALUES('小黑',40);SELECT * FROM employee;
3.外键约束
-- 被约束的表 叫附表-- 约束别人的表 叫主表-- 当有了外键约束的时候,添加数据的时候应该先添加主表再添加附表-- 当有了外键约束的时候,删除数据的时候应该先删除附表再删除主表DELETE FROM employee WHERE empName = '小明';DELETE FROM dept WHERE id = 1;
4.级联操作