Oracle SQL开发学习笔记

简介:
一、内连接(inner join)
 内连接通过where语句的连接条件先把所有要连接的表一个个的拼接成一个“大表”,如果中间有别的条件限制,可以通过限制条件,缩减表的列数和行数后,继续和别的表连接。连接的最后,是一些查询条件,用来限制这个“大表”的行数。 如果连接中,有任何一个表不匹配连接条件,那么该行数据将不会出现在“大表”中。
 例子:
 --老语法
 select b.mc, a.zxyy_mc 
 from dm_zxyy a, dj_ztzx b 
 where b.yy_dm = a.zxyy_dm
 --sql-92标准
 select b.mc, a.zxyy_mc
 from dm_zxyy a inner join dj_ztzx b
 on a.zxyy_dm=b.yy_dm
 以上两个sql的功能相同,sql标准的语法有所不同.
二、外连接(out join)
 外连接的类型有三种:左外连接、右外连接、全外连接,内连接可以删除原表中的一些行,外连接可以保留这些行中的一部分。
 (一)、左外连接
  1、连接条件写在where子句中。括号中的加法符号(+)写在连接条件的右边。这就指定了一个作外连接。连接条件中有多个子句时,加法符号必须写在每个子句的右边。‘+’相当于一个给右边表一个万能行,来匹配左边的表进行‘内连接’。
  例子:
  --老语法
  select a.*, b.* 
   from tab1 a, tab2 b 
  where a.sn = b.sn(+)
     a.tx > b.tx(+)
   order by a.sn
   
  --SQL92标准 
  select a.*, b.* 
   from tab1 a left outer join tab2 b 
  on a.sn = b.sn(+) 
     a.tx > b.tx(+)
   order by a.sn
  以上两个sql的功能相同,sql标准的语法有所不同.
 (二)、右外连接
  与左外连接相似,不做介绍。
 (三)、全外连接
  1、全外连接实际上是对两个分别进行左右连接后,再将结果集联合到一块形成的。
  2、进行联合的两个结果集的列必须相同。
  3、全外连接的语法:
   左外连接
    union
   右外连接
  4、union只能有一个order by子句,并且它必须位于union的最后一行中。这个子句按指定顺序对union所有行进行排序。
  5、union联合时,会删除重复的行,而不论重复的行是否来自同一个表。
  
三、union与union all
 (一)、union与连接的区别
  1、union将两个表的行合并到一个表中,并不对这些行做任何更改,并删除重复的行,而不论这些重复行是否来自同一个表。
  例子:
  --union联合查询
  select a1,b1,c1
   from tab1
  union
  select a2,b2,c2
   from tab2
  --连接查询
  select t1.*,t2.*
   from tab1 t1,tab2 t2
  where a.id=b.id
 (二)、union与union all的区别
  1、与union非常相似,唯一的区别是union all不删除重复的行,也不对行进行自动排序。
  2、union all比union省计算资源,应尽量使用union all。


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/7482,如需转载请自行联系原作者
相关文章
|
5月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
413 8
|
5月前
|
算法 数据挖掘 数据库
通过 SQL 快速使用 OceanBase 向量检索学习笔记
通过 SQL 快速使用 OceanBase 向量检索学习笔记
|
5月前
|
SQL 数据库
SQL 学习笔记 - 多表关系与多表查询
数据库多表关系包括一对多、多对多和一对一,常用外键关联。多表查询方式有隐式/显式内连接、外连接、子查询等,支持别名和条件筛选。子查询分为标量、列、行、表子查询,常用于复杂查询场景。
|
10月前
|
SQL Oracle 关系型数据库
解决大小写、保留字与特殊字符问题!Oracle双引号在SQL中的特殊应用
在Oracle数据库开发中,双引号的使用是一个重要但易被忽视的细节。本文全面解析了双引号在SQL中的特殊应用场景,包括解决标识符与保留字冲突、强制保留大小写、支持特殊字符和数字开头标识符等。同时提供了最佳实践建议,帮助开发者规避常见错误,提高代码可维护性和效率。
410 6
|
11月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
11月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
|
11月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
|
SQL Oracle 关系型数据库
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。
|
Oracle 关系型数据库
|
SQL 关系型数据库 索引

推荐镜像

更多