- 浏览: 2292296 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (314)
- JAVA基础知识 (54)
- Java-IO/FIle (16)
- Java-JDBC (4)
- JAVA-新增特性-注解 (3)
- Java-枚举 (2)
- Java-泛型 (1)
- Java-多线程 (15)
- Java-XML (4)
- Java-JMS(消息服务) (4)
- Java-JVM (0)
- Web Service服务 (7)
- Jsp (10)
- js (18)
- Struts框架 (11)
- Spring框架 (29)
- Hibernate框架 (28)
- Spring Boot框架 (2)
- ExtJS前端框架 (29)
- Jquery js库 (8)
- JUnit框架 (8)
- Selenium 测试 (1)
- NoSql---Redis (6)
- ORACLE数据库 (45)
- MySQL数据库 (4)
- tomcat (3)
- Nginx反向代理服务器 (4)
- web应用服务器通用知识 (3)
- 开发工具IDE (14)
- UML建模 (1)
- SVN CVS 版本管理 (6)
- git 分布式版本管理 (4)
- 报表设计 (5)
- 文件上传下载 (2)
- 数据算法 (1)
- 存储过程 (5)
- JSON 相关 (1)
- OGNL表达式 (3)
- Util工具包 (9)
- 设计模式 (15)
- linux 相关 (3)
- life think (3)
- 工作流管理框架 (1)
- 大数据-Hadoop (1)
最新评论
-
huih:
很不错的文章
SpringMVC+Hibernate+Spring 简单的一个整合实例 -
calm01:
学习了.
Spring <bean>标签属性 Autowire自动装配(转载) -
lizhenlzlz:
我的也是拦截不了service层
SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)(转载) -
josh_123:
讲的不错,很详细,如果quartz定时任务类采用不继承任何类的 ...
Spring,jdk定时任务的几种实现以及任务线程是串行还是并行执行(转载) -
human_coder:
你知道eclipse调试怎么可以回调吗?有时候总是调快了,不能 ...
Debug---Eclipse断点调试基础
Join操作基本分为3大类:外连接(细分为:左连接、右连接、全连接)、自然连接、内连接
Join操作的共性:第一步均为将所有参与操作的表进行了一个笛卡儿积,然后才依据各连接
条件进行记录的筛选
SQL> select * from employees;
NAME |
DEPARTMENT_ID |
SALARY |
Getz |
10 |
3000 |
Davis |
20 |
1500 |
King |
20 |
2200 |
Davis |
30 |
5000 |
Kochhar |
|
5000 |
SQL> select * from departments;
DEPARTMENT_ID |
DEPARTMENT_NAME |
10 |
Sales |
20 |
Marketing |
30 |
Accounts |
40 |
Administration |
------------------Left outer join----------------
SQL> select * from employees e left outer join departments d on e.department_id=d.department_id;
附加:Oracle9i以前版本中左连接的写法如下:
SQL> select * from employees e ,departments d on e.department_id=d.department_id(+);
---------------------------Right outer join------------------------
SQL> select * from employees right outer join departments using(department_id);
附加:Oracle9i以前版本中左连接的写法如下:
SQL> select * from employees e ,departments d where e.department_id(+)=d.department_id;
--------------------------------Full join----------------------------
SQL> select * from employees full join departments using(department_id);
说明:[1]外连接必须使用on或using子句提供相应的连接条件
[2]不能为using子句中所列举的列指定表别名,即使在group by和select子句中也是如此
[3]外连接规则:左连右补,右连左补,全连左右合并
如:对表departments表进行右连接时,在两表完成笛卡儿积后再依据连接条件 using(department_id)来筛选两表中department_id值相同的记录,但对DEPARTMENT_ID=40
employees表中没有与之匹配的记录,按常理此DEPARTMENT_ID=40所对应的记录将被抛
弃,但就是为了保全连接表(departments表)中的所有记录就必须在employees表中虚拟出
一条与之匹配的记录来保全连接表的所有记录,当然这条虚拟的记录显示时值全为null
--------------------------Natural join-----------------------------
SQL> select * from employees natural join departments;
说明:自然连接是通过对参与表关系中所有同名的属性对取等(即相等比较)来完成的,故无须自己添加连接条件
与外连接的区别在于对于无法匹配的记录外连接会虚拟一条与之匹配的记录来保全连接表中的所有记录,但自然连接不会
----------------------Inner join----------------
SQL> select * from employees inner join departments using(department_id);
说明:内连接与自然连接基本相同,不同之处在于自然连接只能是同名属性的等值连接,而内连接可以使用using或on子句来指定连接条件,连接条件中指出某两字段相等(可以不同名)。
-------------------------------------------------------------------------------------------------------------------
连接的概念:
连接分为条件连接、等值连接和自然连接三种。
1、条件连接就是在多个表的笛卡尔积中选取满足条件的行的连接,例如 select * from A,B where A.a > A.b 之类的有条件的查询。
2、等值连接就是特殊的条件连接,当条件为某字段=某字段时,即为等值连接。如SELECT ename,sal,dname FROM emp,dept WHERE emp.deptno=dept.deptno;
3、自然连接是一种特殊的等值连接,他要求多个表有相同的属性字段,然后条件为相同的属性字段值相等,最后再将表中重复的属性字段去掉,即为自然连接。如A中a,b,c字段,B中有c,d字段,则select * from A natural join B 相当于 select A.a,A.b,A.c,B.d from A.c = B.c 。
内连接与等值连接的区别:
内连接:两个表(或连接)中某一数据项相等的连接称为内连接。等值连接一般用where字句设置条件,内连接一般用on字句设置条件,但内连接与等值连接效果是相同的。
内连接与等值连接其实是一回事情(等效)。
经常有人会问到select a.id,b.name from a,b where a.id=b.pid 与
select a.id,b.name from a inner join b on a.id=b.pid 有什么区别,哪个效率更高一些。
实际上一回事情了。只是内连接是由SQL 1999规则定的书写方式。两个说的是一码事。
发表评论
-
oracle 动态执行命令execute immediate
2016-06-12 17:42 3369可以使用execute immediate来动态执SQL语 ... -
Oracle表与索引的分析及索引重建(转载)
2015-04-27 17:08 3271Oracle表与索引的分析及索引重建 2010年1 ... -
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结(转载)
2015-04-15 16:36 8244在web开发中,避免不了对日期的操作,就几种常见的日期操作 ... -
jdbc连接数据库使用sid和service_name的格式区别(转载)
2015-04-10 10:25 3953最近使用jdbc连接oracle时报错: ORA-1250 ... -
oracle 执行计划为什么不走hash join?(转载)
2015-04-07 14:34 5468今天,某省的同事来告诉我,表重组后,他用于统计的一个sql脚 ... -
详细介绍ORACLE sqlplus命令(转)
2015-04-03 10:05 1998一、ORACLE的启动和关闭1、在单机环境下要想启动或关 ... -
oracle sqlplus登陆命令(转载)
2015-04-03 09:59 4305oracle sqlplus登陆命令 首先,进入 ... -
Oracle ORA-01555快照过旧的错误(转载)
2015-02-25 16:31 2929第一篇文章: 首先 ... -
oracle创建分区表,以及非分区表转分区表(转载)
2015-01-22 17:14 3343什么是分区表,分区表详解:http://langgufu. ... -
oracle游标详解
2015-01-15 16:55 5107Oracle游标循环 第一种使用loop 循环 ... -
Oracle调优总结--2(经典实践 重要)
2014-11-24 15:43 990Oracle SQL性能优化 (1 ... -
解读Oracle执行计划
2014-11-19 17:10 5111本篇解释执行计划中基本项的含义 关于生成和显示Oracle ... -
Oracle 执行计划(Explain Plan) 说明
2014-11-19 17:10 54499如果要分析某条SQL的性能问题,通常我们要先看SQL的执 ... -
oracle导出excel 方法总结
2014-11-19 11:38 8821oracle导出excel 一、oracle导出exce ... -
oracle translate()详解+实例(替换字符函数)+rpad()填充函数
2014-10-28 16:19 2364一、语法: TRANSLATE(string,from ... -
oracle根据已有表及数据创建表分区并导入数据
2014-10-21 17:05 62oracle根据已有表及数据创建表分区并导入数据 假 ... -
ORACLE 普通表转换成分区表(在线重定义方法详解 转载)
2014-10-21 17:01 5472什么是分区表,分区表详解:http://langguf ... -
Oracle中的不等于号(转)
2014-07-29 16:02 1170今天碰到一个Oracle不等 ... -
oracle 自定义类型 type / create or replace type (转载)
2014-07-17 15:21 16807<!--正文 begin--> 一: ... -
【转】oracle存储过程导出表数据为TXT文件【全表字段】
2014-05-07 17:33 4385-****************************** ...
相关推荐
连接查询—(1)等值与非等值连接查询:等值连接:连接运算符为=(对比关系代数中的等值连接) 【例3.49】查询每个学生及其选修课程的情况. SELECT Student.*,SC.* FROM Student,SC WHERE Student.Sno=SC.Sno; 从两...
在这样的情形下,通常要使用WHERE子句设定条件来将结果集减少为易于管理的大小,这样的连接即为等值连接。 ;交叉连接和内连接; 【例】 查找Bookstore数据库中客户订购的图书书名,订购册数和订购时间。 SELECT Book....
MySQL连接查询(多表连接查询:内连接,外连接,交叉连接详解) 6:多表连接查询 笛卡尔乘积:如果连接条件省略或无效则会出现 解决办法:添加上连接条件 连接查询的分类: 1.按年代分类: 1)sql 92标准:仅仅...
这是关于“如何画关系代数的连接图?(数据库关系代数中笛卡儿积、θ连接、等值连接、自然连接、外连接)”的草稿图
java 用排序-合并算法实现两张表的等值连接
假设存在两张表 c 和 p,这里使用的是MySQL数据库。 数据表 c: course_id title dept_name credits BIO-301 Genetics Biology 4 CS-190 Game Design Comp.sci 4 CS-315 Robotics Comp.sci 3 数据表 p...
外连接以指定表为连接主体,不满⾜连接条件的元组也输出 左外连接:以左边为主体,列出左边关系,Left outer JOIN 右外连接:以右边为主体,列出右边关系,Right outer JOIN 如想列出每个学⽣的基本情况和选课情况...
在一张或多张表中使用等值或非等值连接 使用外连接查询 自连接查询 第五章 组函数 定义及有效的使用组函数 使用Group By对查询数据分组 使用HAVING子句对分组后的数据进行过滤 第六章 子查询 第七章 数据建模及...
熟练掌握连接查询操作:包括等值连接、自然连接、卡尔连接、交叉连接、内连接、外连接、自身连接等操作。 具体内容: 用SQL语句表示下列操作,在学生库中实现数据查询。 求数学系学生的学号和姓名。 求选修了...
数据库的单表查询和连接查询,数据库的简单查询和连接查询,1、简单查询操作 该实验包括投影、选择条件表达式、数据排序、使用临时表...该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、
动力节点的杜老师讲述的mysql教程,详细讲解了MySQL的相关知识,包括MySQL概述,MySQL应用环境,MySQL系统特性,MySQL初学基础,MySQL管理工具,如何安装MySQL及MySQL新特性,通过观看可掌握MySQL全套知识。
剖析MySQL左连接右连接等值连接异同.pdf
等值连接 不等连接 自然连接 外连接 交叉连接 全连接 右连接 左连接 外连接
在本篇文章里小编给大家整理的是一篇关于mysql sql99语法 内连接非等值连接的相关知识点文章,有需要的朋友们可以学习下。
SQL中表等值连接(内连接) inner join SQL中表左连接(左外连接) left join SQL中表右连接(右外连接) right join SQL中表交叉连接(两张表的乘积) SQL中表全连接 full join SQL中变量 SQL中的事务 创建存储过程 存储...
第2章 关系数据库 1 .试述关系模型的三个组成部分。 答:关系模型由关系数据结构、关系操作...自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
sqlserver等值连接非等值连接PPT教案.pptx
数据库原理课程关系运算 自然联接与等值联接的区别 五个基本操作
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接 表中的所有列,包括其中的重复列。 2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的...