Oracle怎样创建关系表与其他的一个表关联?

Oracle怎样创建关系表与其他的一个表关联?,第1张

例如下面这两个表中分别存的时员工的基本信息和公司的部门信息。我们为

create table dept

(deptno number(10) not null,

deptname varchar2(30) not null,

constraint pk_dept primary key(deptno))

create table emp

( empno number(10) not null,

fname varchar2(20) ,

lname varchar2(20) ,

dept number(10) ,

constraint pk_emp primary key(empno))

然后我们现在增加外键试一下on delete cascade

alter table emp

add constraint fk_emp_dept foreign key(dept) references dept(deptno) on delete cascade

先增加外键。然后插入数据

insert into dept values(1,’销售部’)

insert into dept values(2,’财务部’)

insert into emp values (2,’Mary’,'Song’,1)

insert into emp values (3,’Linda’,'Liu’,2)

insert into emp values (4,’Linlin’,'Zhang’,1)

然后现在我要删除销售部,会有什么后果呢?

delete from dept where deptno = 1

我们发现除了dept中的一条数据被删除了,emp中两条数据也被删除了,其中emp中的两条数据是参照了销售部的这条数据的,这就很容易理解on delete cascade了。

主外键需要依托多表来创建,方法如下:

创建主表:

CREATE TABLE SCOTT.DEPT 

(DEPTNO NUMBER(2,0) PARIMARY KEY, 

DNAME VARCHAR2(14), 

LOC VARCHAR2(13))

创建副表及外键:

CREATE TABLE EMP 

(EMPNO NUMBER(4,0) PRIMARY KEY, 

ENAME VARCHAR2(10), 

JOB VARCHAR2(9), 

MGR NUMBER(4,0), 

HIREDATE DATE, 

SAL NUMBER(7,2), 

COMM NUMBER(7,2), 

DEPTNO NUMBER(2,0),

CONSTRAINT FK_DEPTNO FOREIGN KEY (DEPTNO) REFERENCES DEPT (DEPTNO))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11903127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存