浅谈Oracle 主外键删除语法格式

Oracle

99语法

--表连接 99语法
--笛卡尔积 cross join
select * from emp,dept;
select * from emp cross join dept;

--等值连接 | 非等值连接 
--join ..on 
--等值
select empno,ename,emp.deptno,dname from emp join dept on emp.deptno = dept.deptno;

--30部门员工信息 薪资等级信息
select e.deptno,max(sal),count(grade) from emp e join salgrade s on sal between losal and hisal where e.deptno in( 10,30) group by e.deptno;


--查询所有员工的员工信息以及上级经理人信息
select * from emp e1 join emp e2 on e1.mgr = e2.empno order by e1.empno;

--外连接 
--主表 : 无论是否满足连接条件,都能显示主表中的数据
--left join : 主表在左边
--right join : 主表在右边
select * from emp e1 left join emp e2 on e1.mgr = e2.empno order by e1.empno;
select * from emp e2 right join emp e1 on e1.mgr = e2.empno order by e1.empno;

select *
  from emp e
  join dept d
    on e.deptno = d.deptno
  join salgrade
    on sal between losal and hisal;

创建表结构

--在创建表的同时字段后面添加约束,指定约束名
--数据类型(默认字节)  如果想要以字符个数为单位 varchar2(5 char)
create table school(
       sid  number(5) constraints pk_school primary key,
       --唯一约束
       sname varchar2(5 char) constraints unique_sname unique, 
       --学校位置
       location varchar2(30),
       
       --表结构结束之前添加约束
       constraint loc_not_null check(location not null) 
)

主键:primary key —>外加起主键别名constraints

外键:例如要在表结构里面创建那么使用:references 表名(表的主键),倘若在表结构外面那么就用追加字段:foreign key(外键的主表id) —>外加起主键别名constraints

例如:

--DDL 
--添加结构中的外键
alter table student add constraint FK_CID foreign key(cid) references clazz(cid);
--修改结构中的删除约束  
alter table student drop constraints FK_CID;

删除数据(delete)

  • 解说遇到的问题
/*删除数据: 
 删除的是从表中的数据->正常删除
 删除的是主表中的没有被从表数据引用的主表数据的时候,可以直接删除
 但是删除的是主表中被从表数据所引用的主表数据的时候
  1) 先删除从表中引用了当前主表数据的那些从表数据,然后再删除当前主表数据
  2) 删除主表数据的同时,为从表中引用了当前主表数据的外键字段设置为null    on delete set null
  3) 删除主表数据的同时,删除那些引用了当前主表数据的从表数据  on delete cascade
*/
 --外键约束  
       cid number(5) constraint fk_cid  references class(cid) on delete cascade --on delete set null
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值