1、准备两个表:Student,Course,其中student.C_S_Id=Course.C_Id(即Student 表中的 C_S_Id 字段为外键列,关联的是 Course 表的 C_Id 主键列)

2、内连接(table1 inner join table2 on 条件表达式):满足on条件表达式,内连接是取满足条件表达式的两个表的交集(其中inner可以省略);

  select * from Student s

  inner join Course c on s.C_S_Id=c.C_Id

 结果如下:

3、外连接(outer join)分为:左外连接(left outer join / left join),右外连接(right join / right outer join)和全外连接(full join / full outer join)

(1)左外连接(table1 left join table2 on 条件表达式):满足on条件表达式,左外连接是以左表为准,返回左表所有的数据,与右表匹配的则有值,

   没有匹配的则以空(null)代替。

  select * from Student s

  left join Course c on s.C_S_Id=c.C_Id

  结果如下:

(2)右外连接(table1 right join table2 on 条件表达式):满足on条件表达式,右外连接是以右表为准,返回右表所有的数据,与左表匹配的则有值,

   没有匹配的则以空(null)代替。

  select * from Student s

  right join Course c on s.C_S_Id=c.C_Id

  结果如下:

(3)全外连接(table1 full join table2 on 条件表达式):满足on条件表达式,返回两个表符合条件的所有行,a表没有匹配的则a表的列返回null,

      b表没有匹配的则b表的列返回null(即返回的是左外连接和右外连接的并集)。

  select * from Student s

  full join Course c on s.C_S_Id=c.C_Id

  结果如下:

4、交叉连接(table1 cross join table2):交叉连接将返回被连接的两个表的笛卡尔乘积,返回结果的行数等于两个表的行数的乘积。

 不加条件的交叉连接SQL语句:

  select * from Student s

  cross join Course c

 加上条件返回满足条件表达式的两个表的行(交叉连接加条件只能用where):

  select * from Student s

  cross join Course c

  where s.C_S_Id=c.C_Id;

 结果如下:

5、自连接:表与表自己连接此时需要给表取别名,而且后面加条件时也只能用where,这点同全外连接一样。

  select s1.S_Name,s2.S_age

  from Student s1,Student s2

  where s1.S_BirthDate=s2.S_BirthDate

SQL的各种连接--自联结,内连接,外连接,交叉连接的更多相关文章

  1. Oracle内链接+外连接详解

    inner join(内连接) 内连接也称为等同连接,返回的结果集是两个表中所有相匹配的数据,而舍弃不匹配的数据.也就是说,在这种查询中,DBMS只返回来自源表中的相关的行,即查询的结果表包含的两源表 ...

  2. 【cl】多表查询(内、外连接)

    交叉连接(cross join):该连接产生的结果集笛卡尔积 a有7行,b有8行    a的第一行与b的每一行进行连接,就有8条a得第一行 7*8=56条 select a.real_name,s.u ...

  3. 【SQL】多表查询中的 外连接 ,on,where

    先简单粗暴给个结论,多表连结查询中,on比where更早起作用,系统首先根据各个表之间的联接条件,把多个表合成一个临时表后,再由where进行匹配过滤,where后语句为真,则能查询出来,而通过外连接 ...

  4. 关于数据库的左,右,内,外连接,Union和Union all---------笔记

    1.左连接 select a.filed1,a.filed2,b.filed1 from a (左表) left join b(右表) on a.commonfiled = b.commonfiled ...

  5. Orcle数据库 表的 内置函数 内链接 外连接 相关练习题

  6. SQL中的内连接与外连接

    关于关系代数连接运算的介绍请查看下面链接 http://www.cnblogs.com/xidongyu/articles/5980407.html 连接运算格式 链接运算由两部分构成:连接类型和连接 ...

  7. 转:SQL的内连接与外连接

    参考:http://www.cuiyongjian.com/post-130.html 在oracle的SQL语句常用的连接有内连接(inner join),外连接(outer join)等,内连接又 ...

  8. SQL 左外连接,右外连接,全连接,内连接

    原文地址  连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行.             连接可 ...

  9. SQL内连接-外连接join,left join,right join,full join

    1.创建测试表test1及test2 SQL)); 表已创建. SQL)); 表已创建. ,'name1'); ,'name2'); ,'name3'); ,'name4'); ,'name5'); ...

  10. SQL连接方式(内连接,外连接,交叉连接)

    1.内连接.左连接.右连接.全连接介绍 內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来.内部连接是两个表中都必须有连接字段的对应值的记录,数据才能检索出来.   左连 ...

随机推荐

  1. [USACO17JAN]Balanced Photo平衡的照片 (树状数组)

    题目链接 Solution 先离散化,然后开一个大小为 \(100000\) 的树状数组记录前面出现过的数. 然后查询 \((h[i],n]\) 即可. 还要前后各做一遍. Code #include ...

  2. php面试专题---13、AJAX基础内容考点

    php面试专题---13.AJAX基础内容考点 一.总结 一句话总结: ajax对提升用户速度,缓解服务器压力方面也是很有可取之处的,毕竟传递的数据少了 1.AJAX基础概念? Asynchronou ...

  3. SqlServer 字段类型详解

    bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型, ...

  4. python学习笔记:unittest单元测试

    单元测试:开发自测时写的代码 unittest基本原理: ♦整个平台的搭建使用的是python的unittest测试框架,这里简单介绍下unittest模块的简单应用. ♦unittest是pytho ...

  5. Elasticsearch+Logstash+Kibana搭建日志平台

    1 ELK简介 ELK是Elasticsearch+Logstash+Kibana的简称 ElasticSearch是一个基于Lucene的分布式全文搜索引擎,提供 RESTful API进行数据读写 ...

  6. .net Datatable

    1. ROW remove vs delete datatable dt = new datatable() //fill 5 records for each row as datarow in d ...

  7. Python科学计算三维可视化(整理完结)

    中国MOOC<Pyhton计算计算三维可视化>总结 课程url:here ,教师:黄天宇,嵩天 下文的图片和问题,答案都是从eclipse和上完课后总结的,转载请声明. Python数据三 ...

  8. 常见ORM框架及JDBC操作工具类

    在Java 程序里面去连接数据库,最原始的办法是使用JDBC 的API.我们先来回顾一下使用JDBC 的方式,我们是怎么操作数据库的. // 注册JDBC 驱动 Class.forName(" ...

  9. array_map() 函数

    定义和用法 array_map() 函数返回用户自定义函数作用后的数组.回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致. 语法 array_map(function,a ...

  10. 什么是SpringMvc

    1.什么是SpringMvc? SpringMvc是spring的一个模块 基于MVC的一个框架 无需中间整合层来整合 什么是MVC ?mvc在b/s下的应用: 首先请求发送request请求到C(c ...