文档章节

数据库的内连接和外连接有啥区别

思维80
 思维80
发布于 2015/05/24 15:13
字数 868
阅读 27
收藏 1
点赞 0
评论 0

数据库的内连接和外连接有啥区别?

A                B
id     
name            id      name
1          a                1       b
2          b                3       c
4          c
内连接就是左表和右表相同的数据:
select * from A inner join B on A.id=B.id
id     
name            id      name
1          a                1       b
外连接分为:左外连接、右外连接、全外连接
左外连接就是以左表为准,去匹配右表,左表有多少条数据,结果就是多少条数据
select * from A left join B on A.id=B.id
id     
name            id     name
1          a                1       b
2          b                null      null
4          c                null      null
右外连接就是与左外连接反之,以右表为准,去匹配左表,右表有多少条数据,结果就是多少条数据
select * from A right join B on A.id=B.id
id     
name            id     name
1          a                1       b
null        null               3       c
全外连接数据条数不一定,相当与是左外连接和右外连接的综合
select * from A full join B on A.id=B.id
id     
name            id      name
1          a                1       b
2          b                null      null
null       null               3       c
4          c                 null       null

 

数据库内连接外连接区别
(一)内连接
 
内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。

内连接分三种:
 
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
 
例,下面使用等值连接列出authorspublishers表中位于同一城市的作者和出版社:
 
SELECT *
  FROM authors AS a INNER JOIN publishers AS p
  ON a.city=p.city
  2
、不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的
列的列值。这些运算符包括>>=<=<!>!<<>
 
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
 
例,在选择列表中删除authors publishers 表中重复列(citystate)
 
SELECTa.*,p.pub_id,p.pub_name,p.country
  FROM authors AS a INNER JOIN publishers AS p
  ON a.city=p.city
(
) 外连接  
 
外连接,返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接或左连接))、右表(右外连接或右连接)或两个边接表(全外连接)中的所有数据行。
 
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录;
 
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录;
例如1SELECT a.*,b.* FROM luntanLEFT JOIN usertable as b
  
ON a.username=b.username
例如2SELECT a.*,b.*
  
FROM city as a FULL OUTER JOIN user asb
   ON a.username=b.username
() 交叉连接   
  交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到
结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查
询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下
列交叉连接检索到的记录数将等于6*8=48行。   
  例如:SELECT type,pub_name
  
FROM titles CROSS JOIN publishers
   ORDER BY type

本文转载自:http://blog.csdn.net/u012151556/article/details/18501517

共有 人打赏支持
思维80
粉丝 8
博文 111
码字总数 42366
作品 0
西安
程序员
【hibernate系列】hibernate的n+1问题

什么叫n+1次select查询问题? 在Session的缓存中存放的是相互关联的对象图。默认情况下,当Hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象。以Customer和Order类为例...

磊神Ray ⋅ 2012/01/09 ⋅ 0

数据库 左连接,右连接,内连接,全连接

原文地址---> http://www.cnblogs.com/yuteng/articles/1729677.html Left Join / Right Join /inner join相关 关于左连接和右连接总结性的一句话: 左连接where只影向右表,右连接where只影...

烧酒二两 ⋅ 2015/11/11 ⋅ 0

内网配置nat123端口映射,外网连接内网MYSQL数据库

转自NAT123官网: http://www.nat123.com/Pages837.jsp 内网配置nat123端口映射,外网连接内网MYSQL数据库 使用nat123,实现外网直接连接访问内网mysql数据库。 1.明确内网连接mysql数据库地址...

NEWSANP ⋅ 2014/04/25 ⋅ 2

内网IP和外网IP的区别【图解】

内网ip和外网ip的区别【图解】   导语:对于IP地址,相信小伙伴们对其都并不陌生。而IP地址还能分为内网IP和外网IP,相信一些从事电脑网络方面职业的小伙伴们对这两种IP形式可能比较熟悉。...

河图再现 ⋅ 04/17 ⋅ 0

SQL学习精粹之内外连接以及where和on条件的区别

sql内外连接(重点) 在oracle的SQL语句常用的连接有内连接(inner join),外连接(outer join)等,内连接又包括等值连接,非等值连接,自连接;而外连接又分为左连接和右连接全连接。其中...

颖辉小居 ⋅ 2016/10/31 ⋅ 0

day06 mysql加强

数据的备份(不用登录mysql): 导出:mysqldump –u用户名 –p密码 数据库名>生成的脚本文件路径; demo: mysqldump -uroot -proot test1>e:/chuanzhi/note/da1.sql 导入(数据库必须有):mys...

萧小蚁 ⋅ 2016/03/06 ⋅ 0

单例模式的数据库连接类

public class DataBaseUtils { private static final Logger log = Logger.getLogger(DataBaseUtils.class.getName()); private static BasicDataSource dataSource = null; static{ dataSou......

四火 ⋅ 2014/03/12 ⋅ 4

【SQL】—多表查询的几种连接方式

前言 最近在项目中用到连接查询,连接查询是关系数据中最主要的查询,包括内连接、外连接等。通过连接运算符可以实现多个表查询。下面来复习一下。 正文 连接查询主要分为三种:内连接、外连...

zt15732625878 ⋅ 01/16 ⋅ 0

都来看啊!如何查询内网数据并发送到外网

目前需求是这样的。内网有个数据库,客户不让暴漏端口到外网。在该内网放一台电脑,可以连接数据库也可以连接外网,但是仍然不可以直接暴漏端口给外网。 目前我是这样想的,在内网做的那台电...

纵使有花兼明月何堪无酒亦无人 ⋅ 2015/06/22 ⋅ 5

PHP 学习必备技能(基础略过)

1.面向对象编程 面向对象编程基本概念 类和对象的关系 如何定义类 成员属性(变量) 如何创建对象实例及如何访问对象属性 对象在内存中存在的形式 栈、堆、全局区、常量区和代码区的关系 成员方...

风雪中的舞者 ⋅ 2015/08/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部