• 【SQL】- 基础知识梳理(三)


    一、引言

    有时为了得到一张报表的完整数据,需要从两个或更多的表中获取结果,这时就用到了“连接查询”。

    二、连接查询

    连接查询的定义:

    数据库中的表通过键将彼此联系起来,从而获取这些表中的数据

    连接查询的语法:

    ROM  join_table join_type join_table[ON (join_condition)]

    其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。join_type 指出连接类型。join_condition指连接条件。使用比较运算符(包括=、>、<、<>、>=、<=、!>和!<)进行表间的比较操作

    三、连接类型

    连接类型的分类:内连接、外连接、交叉连接

    下面做数据准备:

    create table Student
    (
    id int not null,
    Studentname varchar(10),
    ClassId nvarchar(10)
    )
    go
    insert into Student values 
    (1,'michael',11),
    (2,'cumming',12),
    (3,'andy',13),
    (4,'pgone',15)
    go
    create table Class
    (
    id int not null,
    name varchar(10)
    )
    go
    insert into Class values 
    (11,'一班'),
    (12,'二班'),
    (13,'三班'),
    (14,'四班')
    go
    View Code

    内连接:返回左右表中相互匹配的

    select * from Student a inner join Class b on a.ClassId=b.id
    “等于”
    select * from Student a,Class b where a.ClassId=b.id

    外连接:左连接(LEFT JOIN)或左外连接(LEFT OUTER JOIN)、右连接(RIGHT JOIN)或右外连接(RIGHT OUTER JOIN)、全连接(FULL JOIN)或全外连接(FULL OUTER JOIN)。我们就简单的叫:左连接、右连接和全连接。

    左连接:返回左表中的行,如果左表中的行在右表中没有匹配行,则结果集中右表的行返回空值

    select * from Student a left join Class b on a.ClassId=b.id

    右连接:与左连接相对,返回右表中的行,如果右表中的行在左表中没有匹配行,则结果集中左表的行返回空值

    select * from Student a right join Class b on a.ClassId=b.id

    全连接:返回左右两表中的所有行,当某行在另一表中没有匹配行时,则另一表返回空值

    select * from Student a full join Class b on a.ClassId=b.id

    交叉连接:返回被连接两个表的笛卡尔积,返回的行数等于两个表行数的乘积(例如:student和class,返回4*4=16条记录)

    select * from Student a cross join Class b 

     (注:cross join后加条件只能用where,不能用on)  

  • 相关阅读:
    ubuntu19.04 redis启动和停止及连接
    ubuntu Redis安装及配置
    Django 基本使用及目录结构
    selenium设置chrome请求头
    多进程爬虫python——实例爬取酷狗歌单
    2020第一周学习记录
    爬取博客园最新文章
    python下用selenium的webdriver包如何在执行完点击下一页后没有获得下一页新打开页面的html源代码
    质量属性六个常见属性《钉钉》场景分析
    warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '报错
  • 原文地址:https://www.cnblogs.com/jdzhang/p/7572029.html
Copyright © 2020-2023  润新知