- 浏览: 595735 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
1.内连接:选出两个表中所有符合连接条件的row构成的集合。
2.外连接:分为LEFT、RIGHT、FULL三种:
如有R与S做连接,那么LEFT是所有满足条件的row以及所有在R属性对应值在S中为NULL的集合。 注意(left join 是 left outer join 简写)
RIGHT是所有满足条件的row以及所有在S属性对应值在R中为NULL的集合
FULL是所有满足条件的row以及任何在R或S中出现NULL的集合。
现在可以看到,三种外连接的区别就在于对空值的处理不同(空值真是数据库的一大困难)。
假设我们有下面两张表。表A在左边,表B在右边。我们给它们各四条记录。
我们用过name字段用几种不同方式把这些表联合起来,看能否得到和那些漂亮的韦恩图在概念上的匹配。
内联合(inner join)只生成同时匹配表A和表B的记录集。(如下图)
全外联合(full outer join)生成表A和表B里的记录全集,包括两边都匹配的记录。如果有一边没有匹配的,缺失的这一边为null。(如下图)
左外联合(left outer join)生成表A的所有记录,包括在表B里匹配的记录。如果没有匹配的,右边将是null。(如下图)
总结图:
参考:http://chuansongme.com/n/481377
2.外连接:分为LEFT、RIGHT、FULL三种:
如有R与S做连接,那么LEFT是所有满足条件的row以及所有在R属性对应值在S中为NULL的集合。 注意(left join 是 left outer join 简写)
RIGHT是所有满足条件的row以及所有在S属性对应值在R中为NULL的集合
FULL是所有满足条件的row以及任何在R或S中出现NULL的集合。
现在可以看到,三种外连接的区别就在于对空值的处理不同(空值真是数据库的一大困难)。
假设我们有下面两张表。表A在左边,表B在右边。我们给它们各四条记录。
id name id name -- ---- -- ---- 1 Pirate 1 Rutabaga 2 Monkey 2 Pirate 3 Ninja 3 Darth Vader 4 Spaghetti 4 Ninja
我们用过name字段用几种不同方式把这些表联合起来,看能否得到和那些漂亮的韦恩图在概念上的匹配。
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name ;
id name id name -- ---- -- ---- 1 Pirate 2 Pirate 3 Ninja 4 Ninja
内联合(inner join)只生成同时匹配表A和表B的记录集。(如下图)
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name ;
id name id name -- ---- -- ---- 1 Pirate 2 Pirate 2 Monkey null null 3 Ninja 4 Ninja 4 Spaghetti null null null null 1 Rutabaga null null 3 Darth Vader
全外联合(full outer join)生成表A和表B里的记录全集,包括两边都匹配的记录。如果有一边没有匹配的,缺失的这一边为null。(如下图)
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name ;
id name id name -- ---- -- ---- 1 Pirate 2 Pirate 2 Monkey null null 3 Ninja 4 Ninja 4 Spaghetti null null
左外联合(left outer join)生成表A的所有记录,包括在表B里匹配的记录。如果没有匹配的,右边将是null。(如下图)
总结图:
参考:http://chuansongme.com/n/481377
发表评论
文章已被作者锁定,不允许评论。
-
sql 查询一些基础数据(不经常变)关联关系时可以把关联关系写入到表中
2018-04-16 15:18 435原来的查询语句 FROM table1 t LEFT ... -
sql 最小化表查询次(col1,col2) = (select col1,col2 from t)
2018-01-02 16:51 553最小化表查询次数 ... -
sql 用inner join取代in和exists
2018-01-02 16:48 1153使用表连接替换EXISTS ... -
oracle HINT详解
2017-09-01 10:42 520ORACLE的HINT详解 hints是oracle提供的 ... -
oracle jdbctemplate如何优化查询速度
2017-08-21 09:33 13201.设置setFetchSize进行优化 // 可以优化 ... -
oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)
2017-08-18 16:48 19001.用途 强行启用 ... -
oracle 存储过程学习总结
2016-08-22 08:42 360dbms_output.put_line('CONCAT ... -
oracle SGA总结信息
2016-07-06 10:38 513SGA 系统全局区 SGA是Oracle用来为实例村粗数据和 ... -
oracle where条件分支查询
2016-06-30 16:16 523select * from test xx where ... -
oracle with as用法
2016-06-24 09:58 939with as语法 –针对一个别名 with tmp as ... -
oracle 重复数据处理的sql整理
2016-06-22 14:44 398Oracle 删除重复数据只留一条 1、查找表中多余的重 ... -
oracle 数据库组成部分(数据库(各种文件)+实例(SGA PGA + 后台进程))知识
2016-04-11 19:51 1270一、SQL server中的实例与 ... -
oracle expdp与impdp导入导出
2016-03-17 10:17 1285[b]数据泵工具导出的步骤:[/b] 1、创建DIRECT ... -
oracle 常用sql语句积累
2016-01-28 11:01 5711.删除重复列 delete from t t1 where ... -
oracle forall关键字进行批量操作
2014-12-12 15:26 1046两个数据操纵语言(DML)语句:BULK COLLECT和FO ... -
oracle 表中有子父关系列则使用CONNECT BY PRIOR
2014-10-27 10:08 421查询名字为xx xxx的所有子数据 SELECT re.U ... -
oracle 存储过程使用实例
2014-10-22 17:41 6091.建包 CREATE OR REPLACE PACKA ... -
oracle 删除大量数据后整理表(analyze table xxx compute statistics)
2014-10-17 18:09 22291. DELETE 后 TRUNCATE TABLE ; 然 ... -
oracle splitstr 函数
2014-10-15 17:45 1410splitstr函数 CREATE OR REPLACE ... -
oracle 高效Sql语句总结
2014-10-08 11:23 504No SQL,No cost. SQL语句是造成数据库 ...
相关推荐
Explain关键字的使用非常广泛,它不仅可以用于SELECT语句,还可以用于DELETE、INSERT、REPLACE和UPDATE语句。通过分析Explain的输出结果,我们可以找到影响查询性能的瓶颈,优化查询语句,提高数据库操作的效率。
这篇文档"Oracle数据库所有操作总结.doc"主要涵盖了Oracle中的查询语句和其他基本操作,对于熟悉和使用Oracle数据库非常有帮助。以下是对这些知识点的详细解释: 1. **查询语句**:基本的查询语句使用`SELECT`...
在Java、Python等编程语言中,我们可以使用JDBC或ODBC驱动程序来连接Oracle数据库,并执行JOIN操作。以下是一个Java的JDBC示例: ```java Statement stmt = conn.createStatement(); String sql = "SELECT * FROM ...
9. 名词解释页脚内容 9:可以使用FULL OUTER JOIN关键字来创建全外部联接。使用CROSS JOIN关键字可以创建笛卡尔积联接。 10. 名词解释页脚内容 10:可以使用自联接来连接同一个表中的不同行。使用非等值联接可以...
左外连接返回左表(即在连接语句中位于JOIN关键字之前的表)的所有记录,即使右表没有匹配的记录。对于左表中没有匹配的记录,结果集将填充NULL值。简单来说,如果你关心的是左表的所有信息,不论右表是否有关联...
### Oracle简单查找知识总结 #### 1. 基本SQL语法结构 在Oracle数据库中执行简单的数据查找时,SQL语句通常按照以下顺序构建: - `FROM`:指定查询的数据表。 - `WHERE`:添加筛选条件。 - `SELECT`:选择需要返回...
例如,通过JOIN操作连接多个表,使用GROUP BY和HAVING进行分组统计,以及使用子查询进行嵌套查询等。Oracle数据库的强大还体现在其丰富的索引策略、事务管理、视图、存储过程、触发器等高级特性,这些都是数据库管理...
然而,在Oracle中,需要使用FROM关键字来指定连接表,而在MySQL中,则使用JOIN关键字。 Subquery语句 Subquery语句用于在Select语句中嵌套另一个查询语句。Oracle和MySQL都支持Subquery语句,但是它们在使用...
在 Oracle 数据库中,`ORDER BY` 是一个重要的 SQL 关键字,用于对查询结果集进行排序。在本文中,我们将深入理解 `ORDER BY` 的使用方法,并通过具体示例来展示其功能。 首先,我们需要了解如何创建和填充数据表。...
在Oracle中,笛卡尔连接可以通过两种方式实现:传统方法和使用JOIN关键字。传统的笛卡尔连接查询是通过在FROM子句中同时列出两个表,并在WHERE子句中不设置任何连接条件来完成。而使用JOIN关键字,我们可以明确地...
JOIN关键字是SQL查询中的关键部分,它允许我们在不同的表之间建立联系,以获取更丰富的信息。在这个主题中,我们将深入探讨INNER JOIN和OUTER JOIN,它们是JOIN的两种主要类型。 首先,我们来看INNER JOIN。INNER ...
### DBA对Oracle SQL编写规范的总结 #### 一、引言 在Oracle数据库开发过程中,遵循一套标准化的SQL编写规范对于提升代码质量、增强可读性和可维护性至关重要。本文档由一位经验丰富的数据库管理员(DBA)撰写,旨在...
17. SQL INNER JOIN 关键字 22 18. SQL LEFT JOIN 关键字 23 19. SQL RIGHT JOIN 关键字 24 20. SQL UNION 和 UNION ALL 操作符 26 21. SQL SELECT INTO 语句 28 22. SQL CREATE DATABASE 语句 29 23. SQL CREATE ...
使用JOIN关键字,结合ON子句来定义连接条件。例如,如果你有两个表,一个是员工表,一个是部门表,你可以找出所有部门和对应员工的信息。 三、外连接 外连接分为左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接...
3. 多表查询:使用`JOIN`关键字连接多个表,如`INNER JOIN`、`LEFT JOIN`、`RIGHT JOIN`和`FULL OUTER JOIN`。 4. 列函数和分组:`GROUP BY`用于对数据进行分组,`AVG()`、`COUNT()`、`MAX()`、`MIN()`等聚合函数...
使用JOIN关键字与 (+) 结合,不符合Oracle语法规范。 - C. 同样使用了JOIN关键字与 (+) 结合,语法不正确。 - D. 使用了RIGHT OUTER JOIN,但应使用LEFT OUTER JOIN来确保返回所有员工记录。 - E. 错误地将 (+) ...
- **`ANY`/`SOME`**:这两个关键字在使用上基本相同,表示“任一”,即与最小值或其中之一进行比较。例如,查找薪水高于部门30中任一员工的员工信息: ```sql SELECT * FROM empt WHERE t.sal > ANY(SELECT sal ...
通过以上分析可以看出,尽管达梦数据库旨在兼容Oracle的部分功能,但在实际应用中仍需注意两者之间的差异,特别是在字段名处理、数据类型使用、语法关键字等方面。了解这些差异有助于更好地利用这两种数据库系统,并...
5. 表连接:学习不同类型的表连接,如内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN),以及使用JOIN关键字进行多表查询。 6. 高级查询:掌握使用WHERE子句进行条件筛选,...
使用 `START WITH ID=某个特定值` 定义起始节点,然后 `CONNECT BY parent_id = PRIOR ID` 指示 Oracle 从当前节点开始,逐层查找所有子节点,直至找到所有后代。 4. **查找一个节点的直属父节点(父亲)** 通过 ...