Oracle 数据库连接查询SQL语句

内连接(inner join)。
外连接:
全连接(full join)、左连接(left join)、右连接(right join)。
交叉联接(cross join)。
外连接与内连接不一样,外连接返回的查询结果中不仅包含符合条件的行,还包括左表(左外连接),右表(右外连接)或者两个连接表(全外连接)中的所有不符合条件的数据行。
1.左连接 (left [outer] join)
左外连接就是将左表的所有数据分别于右表的每条数据进行连接组合,返回的结果除内连接的数据外,还有左表中不符合条件的数据,并在右表的相应列中填上null值。
SQL语句如下:
select * from mt_pb_org o left join mt_pb_orgframe f on o.PB_ORGFRAMEID = f.PB_ORGFRAMEID;
等价语句:
select * from mt_pb_org o,mt_pb_orgframe f where o.pb_orgframeid = f.pb_orgframeid(+);
2.右连接 (right [outer] join)
右外连接就是将右表中的所有数据分别与左表的每条数据进行连接组合,返回的结果除了内连接的数据外,还有右表中不符合条件的数据,并在左表相应的列中填上null值。
SQL语句如下:
select * from mt_pb_org o right join mt_pb_orgframe on o.pb_orgframeid = f.pb_orgframeid;
等价语句:
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;

(0)

相关推荐

  • 连接Oracle数据库时报ORA-12541:TNS:无监听程序的图文解决教程

    在用PL/SQL Developer等客户端工具连接oracle服务器时出现ORA-12541:TNS:无监听程序的错误,如下图: 发现原来是oracle的监听没有启动,重启监听后就连接成功了,下面跟大家分享一下如何启动oracle的监听. 1.在安装Oracle服务器的主机上,打开Net Configuration Assistant 2.选择监听程序配置,下一步 3.选择重新配置,下一步 4.选择监听程序,默认,下一步 注:如果你的监听已启动,则出现提示框,选择是 5.选择协议,使用默认的T

  • 详解PL/SQL Developer连接本地Oracle 11g 64位数据库

    1.登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files (x86)目录下,不然无法启动PL/SQL Developer. 奇怪这里为什么选择不到数据库的TNS呢?我是先安装数据库,再安装PL/SQL Developer.按理说安装PL/SQL Developer时,就已经识别到了Oracle Home和OCI Libaray了.管它呢?先以非登录方式登

  • oracle11g 通过修改配置文件方式连接远程数据库的方法

    通过修改数据库配置文件的方式连接远程数据库(每个人安装的位置不同,找到自己的位置)我的数据库位置:D:\app\ZhangYQ\product\11.2.0\dbhome_1\NETWORK\ADMIN\ 修改目录下tnsnames.ora 文件中的配置即可. 根据自己的服务器地址加入以下代码: ORA10 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 121.52.216.217)(PORT = 1521

  • oracle 数据库连接分析

    1.连接本机数据库 A. 本机若有静态IP,oracle安装好后,就能连接本机oracle数据库. B. 安装oracle时,本机没有静态IP(即显示网线没有插好的时候). 修改 NETWORK\admin文件中的 tnsnames.ora .listener.ora文件中 HOST 为本机计算机名. 如果计算机名没设置好,就去修改 WINDOWS\system32\drivers\etc\ hosts文件. 2.连接它机服务器 a. 开启实例服务和监听器. b. 进netManager建连接.

  • Oracle数据库使用sqlplus时的连接错误与方向键乱码解决

    连接错误 安装好以后,我登录企业后台(http://ubuntu:1158/em)报错,用sqlplus连接oracle也报错. 一,遇到的错误如下 1,ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ERROR: OCIServerAttach) 2,ORA-28547: connection to server failed, probable Oracle Net

  • oracle 11g配置 解决启动连接数据库出现的ora错误

    按照网上方法并结合实践,整理了一下(以后忘记了可以看看),oracle登录问题的解决办法: 常见的登录连接oracle数据库时遇到的问题ora-12560,01034,27101,00119,00132等,可以按照以下步骤检查和解决. Oracle11g数据库监听,数据库启动  1.添加监听程序(服务器端) 打开net manager 添加监听 添加监听位置(网络地址) 添加数据库服务(oracle主目录可以不填) 2.添加服务命名  3.测试 利用服务器端sqlplus工具E:\app\204

  • EF 配置Oracle数据库数据库连接字符串的实例

    使用Nuget管理程序包自动安装了Oracle的两个程序包后,配置文件就已经准备好了,但一直很奇怪,一直连接不上数据库, 使用过Oracle的都知道,Oracle的配置一般都需要 net manager,然后就可以连接数据了. 一般这样配置后,连接字符串就是如下了: <add key="connection.connection_string" value="Data Source=EASDBBJ;User ID=User;Password=Password;"

  • plsql连接oracle数据库报ora 12154错误解决方法

    plsql连接oracle数据库报ora 12154错误 今天遇到一个问题,使用sqlplus能够连接到远程的数据库,但是使用plsql却连接不上,报错"ORA-12154: TNS: 无法解析指定的连接标识符" 解决方法如下: 1.先检查服务器端的监听服务是否打开,如果没有打开请启动其监听 客户端:tnsping <tns_name> 服务器Linux下: #>lsnrctl status 查看监听状态 #>lsnrctl start 启动监听 2.通过Sql

  • Oracle连接远程数据库的四种方法

    Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍 第一种方法: 若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了. 不过要注意环境变量%ORACLE_HOME%/network/admin/是否设置. 第二种方法: 本机未安装oracle服务器,也未安装oracle客户端.但是安装了pl sql development.toad sql development.sql navigat

  • Oracle 数据库连接查询SQL语句

    内连接(inner join). 外连接: 全连接(full join).左连接(left join).右连接(right join). 交叉联接(cross join). 外连接与内连接不一样,外连接返回的查询结果中不仅包含符合条件的行,还包括左表(左外连接),右表(右外连接)或者两个连接表(全外连接)中的所有不符合条件的数据行. 1.左连接 (left [outer] join) 左外连接就是将左表的所有数据分别于右表的每条数据进行连接组合,返回的结果除内连接的数据外,还有左表中不符合条件的

  • Oracle数据库中SQL语句的优化技巧

    在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.

  • Oracle 临时表空间SQL语句的实现

    目录 临时表空间概念 以下总结了关于 Oracle 数据库临时表空间的相关 SQL 语句: Oracle 临时表空间创建和添加数据文件: 查看当前默认临时表空间: 查询temp表空间使用率: 查看临时表空间对应的临时文件的使用情况: 查询实时使用temp表空间的sql_id和sid: 查询历史的temp表空间的使用的SQL_ID: 临时表空间概念 临时表空间用来管理数据库排序操作以及用于存储临时表.中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_

  • Oracle如何在SQL语句中对时间操作、运算

    目录 0.date与timestamp 1.获取系统当前时间 2.ORACLE里获取一个时间的年.季.月.周.日的函数: 3.日期操作 4.常用的时间戳 5.查询某时间范围 总结 0.date与timestamp 1)区别 date精确到年月日时分秒,timestamp更精确一些: 但这个不重要,重要的是,实践中我从Oracle数据库取date类型字段,前端展示时分秒都是0,网上说数据库类型是date取到前端就是这样,只能精确到日,后面都是默认填0:我给字段换成timestamp确实问题解决了,

  • Oracle批量执行sql语句之禁用所有表的外键

    在转移数据库,进行数据导入的时候,遇到一件麻烦事,就是表间外键约束的存在,导致insert频频报错,批量执行sql语句又是顺序执行,没办法我只好手动输入. 然后输入到一半灵光一闪,为什么不先把外键约束全部禁用先呢? 于是我百度到以下资料: oracle 删除(所有)约束 禁用(所有)约束 启用(所有)约束 执行以下sql生成的语句即可 1删除所有外键约束 select 'alter table '||table_name||' drop constraint '||constraint_name

  • oracle用什么SQL语句判断表存不存在

    正在看的ORACLE教程是:oracle用什么SQL语句判断表存不存在.SQL SERVER用来判断表或视图存在的语句在ORACLE中不能用,请问该怎么写. 谢谢. 提问者: - 最佳答案 exists(select tname from tab where tname ='TABLENAME') 记得表名要大写,因为ORACLE是区分大小写的,所有的表名都存放在tab表中

  • laravel 获取某个查询的查询SQL语句方法

    如下所示: DB::connection()->enableQueryLog();#开启执行日志 $count = DB::table('test') //执行查询 ->whereNull('deleted_at') ->where('id', '=', 3) ->where('Name', '=', '测试') ->count(); print_r(DB::getQueryLog()); //获取查询语句.参数和执行时间 Array ( [0] => Array (

  • djang常用查询SQL语句的使用代码

    将django语法和sql对应一下,希望对大家有所帮助 查询单个列的值 story.object.values_list("url", flat=True) SELECT `story`.`url` FROM `hbtc_story` WHERE `story`.`status` = resolved AND查询 Stories.objects.filter(Q(status='resolved') & Q(status='developing')) SELECT * FROM

  • Java反射 JavaBean对象自动生成插入,更新,删除,查询sql语句操作

    通过反射根据提供的表名.POJO类型.数据对象自动生成sql语句. 如名为 User 的JavaBean与名为 user 的数据库表对应,可以提供一个封装有数据的User对象user,根据user中含有的数据自动生成sql语句. 1.生成插入语句(插入user中包含的非空数据的语句): String insertSql = getInsertSql("user", User.class, user); 2.生成更新语句(user中id不能为空): String updateSql =

  • Oracle 获取上周一到周末日期的查询sql语句

    复制代码 代码如下: -- Oracle 取上周一到周末的sql -- 这样取的是 在一周内第几天,是以周日为开始的 select to_char(to_date('20130906','yyyymmdd'),'d') from dual; --结果:6 注释:2013.09.06是周五,为本周的第六天 select to_char(sysdate+(2-to_char(sysdate,'d'))-7,'yyyymmdd') from dual;---上周一 select to_char(sys

随机推荐