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,如需转载请自行联系原作者
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
【MySQL】根据binlog日志获取回滚sql的一个开发思路
【MySQL】根据binlog日志获取回滚sql的一个开发思路
|
2月前
|
SQL 监控 Oracle
Oracle SQL性能优化全面指南
在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
|
2月前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
86 3
|
2月前
|
SQL Oracle 关系型数据库
Oracle SQL:了解执行计划和性能调优
Oracle SQL:了解执行计划和性能调优
77 1
|
3月前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
在Web开发中,安全至关重要,尤其要警惕SQL注入和XSS攻击。SQL注入通过在数据库查询中插入恶意代码来窃取或篡改数据,而XSS攻击则通过注入恶意脚本来窃取用户敏感信息。本文将带你深入了解这两种威胁,并提供Python实战技巧,包括使用参数化查询和ORM框架防御SQL注入,以及利用模板引擎自动转义和内容安全策略(CSP)防范XSS攻击。通过掌握这些方法,你将能够更加自信地应对Web安全挑战,确保应用程序的安全性。
105 3
|
4月前
|
SQL NoSQL 数据库
开发效率与灵活性:SQL vs NoSQL
【8月更文第24天】随着大数据和实时应用的兴起,数据库技术也在不断发展以适应新的需求。传统的SQL(结构化查询语言)数据库因其成熟的数据管理机制而被广泛使用,而NoSQL(Not Only SQL)数据库则以其灵活性和扩展性赢得了众多开发者的青睐。本文将从开发者的视角出发,探讨这两种数据库类型的优缺点,并通过具体的代码示例来说明它们在实际开发中的应用。
132 1
|
3月前
|
SQL 分布式计算 大数据
大数据开发SQL代码编码原则和规范
这段SQL编码原则强调代码的功能完整性、清晰度、执行效率及可读性,通过统一关键词大小写、缩进量以及禁止使用模糊操作如select *等手段提升代码质量。此外,SQL编码规范还详细规定了代码头部信息、字段与子句排列、运算符前后间隔、CASE语句编写、查询嵌套、表别名定义以及SQL注释的具体要求,确保代码的一致性和维护性。
113 0
|
4月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
531 0
|
5月前
|
JSON 数据格式 SQL
SQL开发问题之直接使用join方法在处理字符串类型属性时可能会遇到性能问题如何解决
SQL开发问题之直接使用join方法在处理字符串类型属性时可能会遇到性能问题如何解决
|
5月前
|
SQL
SQL开发问题之使用distmapjoin的问题如何解决
SQL开发问题之使用distmapjoin的问题如何解决

推荐镜像

更多