Oracle PL/SQL之联接

本文详细介绍了Oracle数据库中的各种联接类型,包括内连接、左连接、右连接、全连接和交叉连接等,并通过示例SQL语句展示了每种联接的应用场景。
oracle的联接分如下几种:
内连接(inner join)。
外联接:
全连接(full join)、左连接(left join)、右连接(right join)。
交叉联接(cross join)。

外联接与内联接不一样,外连接返回到查询结果中的不仅包含符合条件的行,还包括左表(左外连接),右表(右外连接)或者两个连接表(全外连接)中的所有不符合条件的数据行。

1.左联接 (left [outer] join)
左外联结就是将左表的所有数据分别于右表的每条数据进行连接组合,返回的结果除内连接的数据外,还有左表中不符合条件的数据,并在右表的相应列中填上null值。

select * from mt_pb_org o,mt_pb_orgframe f where o.pb_orgframeid = f.pb_orgframeid(+);

2.右联接 (right [outer] join)
右外联结就是将右表中的所有数据分别与左表的每条数据进行连接组合,返回的结果除了内连接的数据外,还有右表中不符合条件的数据,并在左表相应的列中填上null值。

select * from mt_pb_org o,mt_pb_orgframe f where o.pb_orgframeid(+) = f.pb_orgframeid;

3.全外联接 (full [outer] join)
全外联接就是将左表的所有数据分别与右表的每条数据进行连接组合,返回的结果除了内连接的数据外,还有两个表中不符合条件的数据,并在左表或者右表的相应列中填上null值。
SQL语句如下:
select * from mt_pb_org o full join mt_pb_orgframe o.pb_orgframeid = f.pb_orgframeid;
4.交叉连接(cross join)
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
SQL语句如下:
select * from mt_pb_org o cross join mt_pb_orgframe f;


原文出自:http://pengtingming.blog.163.com/blog/static/13556932008622104628262/

Oracle PL/SQL中,实际上并不直接建立数据库连接。PL/SQLOracle数据库的过程化语言扩展,它与SQL紧密集成,并且运行在Oracle数据库内部。因此,当使用PL/SQL时,代码通常是在已经连接到Oracle数据库的上下文中执行的,比如通过应用程序、SQL*Plus、PL/SQL Developer或其他支持Oracle的开发工具来连接数据库后,再执行PL/SQL块。 若要从外部程序或脚本中建立到Oracle数据库的连接并执行PL/SQL代码,则需要使用相应的编程语言和对应的Oracle客户端库。以下是一些常见的方法: ### 使用SQL*Plus建立连接 SQL*Plus 是一个命令行工具,可以用来连接Oracle数据库并执行SQLPL/SQL语句。可以通过如下方式连接: ```bash sqlplus username/password@database_service_name ``` 一旦登录成功,就可以直接输入PL/SQL匿名块进行执行。 ### 使用PL/SQL Developer建立连接 PL/SQL Developer是一个流行的Oracle数据库开发环境,它提供了图形界面来配置和管理数据库连接[^3]。配置步骤包括创建新的会话并提供必要的认证信息如用户名、密码及数据库服务名等。 ### 使用其他编程语言(例如Python) 如果选择用Python这样的第三方语言来连接Oracle数据库并执行PL/SQL,可以使用cx_Oracle这样的驱动。示例代码如下: ```python import cx_Oracle # 建立数据库连接 connection = cx_Oracle.connect('username', 'password', 'localhost/XE') # 创建游标对象 cursor = connection.cursor() # 执行PL/SQL匿名块 cursor.execute(""" BEGIN -- 这里放置你的PL/SQL代码 NULL; -- 示例中的空操作 END; """) # 提交事务 connection.commit() # 关闭游标和连接 cursor.close() connection.close() ``` ### 使用JDBC (Java Database Connectivity) 对于Java开发者来说,可以利用JDBC API 来连接Oracle数据库并调用存储过程或者执行PL/SQL块。这通常涉及加载适当的JDBC驱动,然后构造URL以指定数据库位置和其他参数。 以上方法展示了不同场景下如何建立与Oracle数据库的连接,并能够执行PL/SQL逻辑。重要的是理解PL/SQL本身是在数据库服务器端运行的语言,所以任何对它的使用都需要事先有一个有效的数据库连接。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值