• sql数据库中常用连接


    很简单的知识点,今天有点搞不清楚左外连接,右外连接:详见以下:

    --表stu 
    id name 
    1, Jack 
    2, Tom 
    3, Kity 
    4, nono 
    --表exam 
    id grade 
    1, 56 
    2, 76 
    11, 89 

    内连接 (显示两表id匹配的) 
    select stu.id,exam.id,stu.name, exam.grade from stu inner join exam on stu.id=exam.id 

    -------------------------------- 
    1 1 Jack 56 
    2 2 Tom 76 


    左连接(显示join 左边的表的所有数据,exam只有两条记录,所以stu.id,grade 都用NULL 显示) 
    select stu.id,exam.id,stu.name, exam.grade from stu left join exam on stu.id=exam.id 
    1 1 Jack 56 
    2 2 Tom 76 
    3 NULL Kity NULL 
    4 NULL nono NULL 

    右连接(与作连接相反,显示join右边表的所有数据) 
    select stu.id,exam.id,stu.name, exam.grade from stu right join exam on stu.id=exam.id 
    1 1 Jack 56 
    2 2 Tom 76 
    NULL 11 NULL 89
     
     
    内连接取交集,外连接分左和右, 
    左连接左边的全取, 
    右连接右边的全取
     
    内连接:进行连接的两个表对应的相匹配的字段完全相同的连接。 

    外连接又分为左外连接和右外连接。 
    左连接即LEFT OUTER JOIN: 
    两个表进行左连接时会返回左边表中的所有的行和右边表中与之相匹配的列值没有相匹配的用空值代替。 

    右连接即RIGHT OUTER JOIN: 
    两个表进行右连接时会返回右边表中的所有的行和左边表中与之相匹配的列值没有相匹配的用空值代替。 

     
    内联接:显示两个表想匹配的行,左连接显示JION左表的行,右表没有想匹配的,用NUL代替!右联接和左连接相反,全连接和左右连接的合计。 

    使用左向外联接 
    假设在 city 列上联接 authors 表和 publishers 表。结果只显示在出版商所在城市居住的作者(本例中为 Abraham Bennet 和 Cheryl Carson)。 

    若要在结果中包括所有的作者,而不管出版商是否住在同一个城市,请使用 SQL-92 左向外联接。下面是 Transact-SQL 左向外联接的查询和结果: 
     
  • 相关阅读:
    springloud系列搭建注册中心
    在生产环境下禁用swagger
    consul怎么在windows下安装
    linux上传与下载
    使用git将本地代码提交到码云上去
    springboot整合activemq(三)配置文件
    springboot整合activemq(二),消费均匀分析
    Python3学习之路~3.2 递归、函数式编程、高阶函数、匿名函数、嵌套函数
    Python3学习之路~3.1 函数基本语法及特性、返回值、参数、局部与全局变量
    Python3学习之路~2.9 字符编码与转码
  • 原文地址:https://www.cnblogs.com/yuanting/p/4764499.html
Copyright © 2020-2023  润新知