首页 > 数据库 >sql常见四种连接查询

sql常见四种连接查询

时间:2024-03-03 23:33:06浏览次数:25  
标签:JOIN 查询 book select sql 联接 stuid 连接 四种

原文链接:https://learn.microsoft.com/zh-CN/sql/relational-databases/performance/joins?view=aps-pdw-2016-au7

                  https://www.cnblogs.com/alone-striver/p/9055078.html

  • 1、内部联接   INNER JOIN
  • 2、左外部联接   LEFT [ OUTER ] JOIN
  • 3、右外部联接  RIGHT [ OUTER ] JOIN
  • 4、完全外联    FULL [ OUTER ] JOIN
  • 5、交叉联接   CROSS JOIN

 

1、内连接:内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。

select * from book as a,stu as b where a.sutid = b.stuid

select * from book as a inner join stu as b on a.sutid = b.stuid

内连接可以使用上面两种方式,其中第二种方式的inner可以省略。

其连接结果如上图,是按照a.stuid = b.stuid进行连接。

4、完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

select * from book as a full outer join stu as b on a.sutid = b.stuid

5、

交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。

select * from book as a cross join stu as b order by a.id

 

标签:JOIN,查询,book,select,sql,联接,stuid,连接,四种
From: https://www.cnblogs.com/Dongmy/p/18050998

相关文章

  • python接口自动化系列(06):解析初始化sql
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标将initSql中常用变量占位符(下图划线的)替换为实际值。 添加替换变量工具模块substitution_tool.py#!/usr/bin/envpython#-*-coding:utf-8-*-#@Author:韧#@wx:ren168632201#@Bl......
  • sql语句in的用法(使用多个列进行匹配)
    原文链接:https://www.cnblogs.com/hellohui/p/17670858.html今天遇到了in的新用法,即文中的第四条,使用多个列进行匹配,在此记录下。使用列值列表进行匹配:SELECT*FROM表名WHERE列名IN(值1,值2,值3,...)使用子查询返回多个结果进行匹配:SELECT*FROM表名WHERE......
  • [极客大挑战 2019]BabySQL 1
    [极客大挑战2019]BabySQL1审题还是SQL注入和之前的是一个系列的。知识点联合注入,双写绕过解题输入万能密码发现回显中没有or,猜测是使用正则过滤了or。尝试双写绕过登录成功使用联合查询,本题中过滤了from,where,or,by,union,select。看到4没有注入点,2和3都......
  • SQL注入注入方式(大纲)
    SQL注入注入方式(大纲)常规注入通常没有任何过滤,直接把参数存放到SQL语句中。宽字节注入GBK编码两个字节表示一个字符ASCII编码一个字节表示一个字符MYSQL默认字节集是GBK等宽字节字符集原理:设置MySQL时错误配置为setcharacter_set_client=gbk(它将客户端字符集设置......
  • SQL intern 29题记录及心得
    表结构21、豹子手机号用户(4个连续数字,如6666)和非豹子号用户的笔均消费金额分别是多少?withbas(selectusr_id,casewhenphone_numREGEXP'[0-9](?=\\1{3})'THEN'Leopard'`else'no-Leopard'`endasis_豹子fromid_inf)selectavg(a.trx_amt),is_豹......
  • MySQL之pymysql模块
    Navicat软件我们在终端操作MySQL,既没有自动操作也无法保存,不方便开发,所以我们使用Navicat,Navicat内部封装了所有的操作数据库的命令。我们在使用它的时候只需要鼠标点击即可完成操作,无需书写SQL语句。详细参考:Day48-04navicat基本使用_哔哩哔哩_bilibili注释语法在navicat......
  • MySQL之多表操作
    第一步:创表#建表createtabledep( idintprimarykeyauto_increment,namevarchar(20));createtableemp( idintprimarykeyauto_increment,namevarchar(20),sexenum('male','female')notnulldefault'male',......
  • MySQL之视图、触发器、存储过程、函数和流程控制
    视图什么是视图视图就是通过查询得到一张虚拟表,然后保存下来,下次可以直接使用其实视图也是表为什么要用视图如果要频繁的操作一张虚拟表(拼表组成的),你就可以制作成视图,后续直接操作如何操作#固定语法createview表名as虚拟表的查询SQL语句#具体操作create......
  • 从零开始学Spring Boot系列-集成MySQL
    在SpringBoot中集成MySQL是为了让开发者能够轻松地与MySQL数据库进行交互。本篇文章将指导你如何在SpringBoot3.2.3项目中使用Gradle来集成MySQL。在此之前,我们需要在Ubuntu22.04上安装MySQL8作为我们的数据库服务器。安装MySQL8本文是在wsl2上的Ubuntu22.04上安装MySQL8.......
  • MySQL之筛选和过滤条件
    开局第一步:创表createdatabaseday03;useday03;createtableemp( idintnotnulluniqueauto_increment,namevarchar(20)notnull,sexenum('male','female')notnulldefault'male',ageint(3)unsignednotnulldefau......