Oracle(五):oracle多表操作

本文深入探讨了SQL中多表操作的高级技巧,包括多表更新、删除及各种连接方式,如等值连接、内连接、左外连接、右外连接和自连接的详细语法与实例应用,为数据库管理提供实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、多表更新

语法

UPDATE table1 { [ INNER ] JOIN {LEFT | RIGHT} [ OUTER ] JOIN} table2 ON conditional_expr
   SET col1 = {expr1 | DEFAULT} [, col2 = {expr2 | DEFAULT} ] .. . [
 WHERE where_condition ]

实例

 update readerfee t1 join readinfo t2 on t1.card_id = t2.card_id
    set actual_return_date = sysdate(),
        book_fee           = datediff(sysdate(), return_date) * 0.2,
        balance            = balance - book_fee
  where t1.book_id = 20151101
    and t1.card_id = '210110199901012222';

二、多表查询

1、等值连接

实例:select * from emp e, dept d where e.deptno=d.deptno;

2、内连接

实例:select * from emp e inner join dept d on e.deptno = d.deptno;

3、左外链接

实例:select * from emp e left join dept d on e.deptno=d.deptno;

4、右外连接

实例:select * from emp e right join dept d on e.deptno=d.deptno;

5、自连接

定义:自连接其实就是站在不同的角度把一张表看成多张表。

实例:select e1.ename, e2.ename from emp e1, emp e2 where e1.mgr = e2.empno;

三、多表删除

语法

DELETE table1 [.* ], table [.* ] FROM table1 { [ INNER ] JOIN | {LEFT | RIGHT} [ OUTER ] JOIN} table2 ON conditional_expr [
 WHERE where_condition ]

实例

delete t1 from book_category_bak t1 left join bookinfo_bak t2 on t1.category_id = t2.book_category_id
 where parent_id <> 0
   and book_id is null

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值