0
点赞
收藏
分享

微信扫一扫

【笔记】12. 外键约束创建

minute_5 2022-01-31 阅读 77
-- 直接创建
#主表
create table if not exists dept(
  deptno varchar(20) primary key ,  -- 部门号
  name varchar(20) -- 部门名字
);
#副表
create table if not exists emp(
  eid varchar(20) primary key , -- 员工编号
  ename varchar(20), -- 员工名字
  age int,  -- 员工年龄
  dept_id varchar(20),  -- 员工所属部门
  constraint emp_fk foreign key (dept_id) references dept (deptno) #外键约束
);
-- 后期创建
create table dept2(
	deptno varchar(20) primary key,
	name varchar(20)
);
create table emp2(
	eid varchar(20) primary key,
	ename varchar(20),
	age int,
	dept_id varchar(20)
);
alter table emp2 add constraint dept_emp foreign key (dept_id) references dept2(deptno);


-- 1、添加主表数据
-- 注意必须先给主表添加数据
insert into dept values('1001','研发部');
insert into dept values('1002','销售部');
insert into dept values('1003','财务部');
insert into dept values('1004','人事部');

-- 2、添加从表数据
-- 注意给从表添加数据时,外键列的值不能随便写,必须依赖主表的主键列
insert into emp values('1','乔峰',20, '1001');
insert into emp values('2','段誉',21, '1001');
insert into emp values('3','虚竹',23, '1001');
insert into emp values('4','阿紫',18, '1002');
insert into emp values('5','扫地僧',35, '1002');
insert into emp values('6','李秋水',33, '1003');
insert into emp values('7','鸠摩智',50, '1003'); 
insert into emp values('8','天山童姥',60, '1005'); #1005在主表中不存在,所以报错

-- 3、删除数据
 /*
   注意:
       1:主表的数据被从表依赖时,不能删除,否则可以删除
       2: 从表的数据可以随便删除
 */
delete from dept where deptno = '1001'; -- 不可以删除
delete from dept where deptno = '1004'; -- 可以删除
delete from emp where eid = '7'; -- 可以删除

-- 4.删除外键约束
alter table emp2 drop foreign key dept_emp;
举报

相关推荐

0 条评论