我是靠谱客的博主 现实绿草,最近开发中收集的这篇文章主要介绍【MySQL学习笔记】连接、子、分页、联合查询以及sql语句执行顺序总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、连接查询

1、SQL92语法:

  • 等值连接

select 查询列表
from 表1 别名,表2 别名
where 表1.key=表2.key

  • 特点:

    • 表的顺序可以调换
    • 等值连接的结果是多表交集部分
    • 一般我们都会给表取别名(不强制,只是为了方便)
    • n个表连接至少要n-1个连接条件
  • 非等值连接

select 查询列表
from 表1 别名,表2 别名
where 非等值的连接条件

  • 自连接(自己和自己连接)

select 查询列表
from 表 别名1,表 别名2
where 等值的连接条件

2、SQL99语法

  • 内连接(可以分为:等值连接、非等值连接和自连接)

    select 查询列表
    from 表1 别名
    [inner] join 表2 别名 on 连接条件

  • 外连接

    select 查询列表
    from 表1 别名
    left | right | full [outer] join 表2 别名 on 连接条件

    • 特点:
      • 左连接中左边的就是主表,右连接中右边的是主表,MySQL不支持全外连接
      • 查询的结果会显示主表中所有的行,包括为空值的行
  • 交叉连接(会产生笛卡尔积)

    select 查询列表
    from 表1 别名
    cross join 表2 别名;

二、子查询

1、概念

嵌套在其他语句内部的select语句称为子查询或内查询;
外面如果有select语句,则称此语句为外查询或主查询。

2、分类

  • 按结果集的行列

    • 标量子查询(单行子查询):结果集为一行一列
    • 列子查询(多行子查询):结果集为多行一列
    • 行子查询:结果集为多行多列
    • 表子查询:结果集为多行多列
  • 按出现位置

    • select后面:
      仅仅支持标量子查询
    • from后面:
      表子查询
    • where或having后面:
      标量子查询
      列子查询
      行子查询
    • exists后面:
      标量子查询
      列子查询
      行子查询
      表子查询

三、分页查询

select 查询列表
from 表
limit [offset,] size;

注意:
offset:起始的条目索引,默认从0开始
size:显示的条目数

四、联合查询

1、语法

查询语句1
union [all]
查询语句2
union [all]

2、要求

  • 每条查询语句的查询列数必须一致
  • 每条查询语句的查询的各列类型、顺序最好一致(不是必须,但是最好一致)
  • union 会自动去除重复项,union all会包含重复项

五、总结(sql语句执行顺序)

select 查询列表 --------------------------⑦

from 表1 别名 -----------------------------①

连接类型 join 表2 ------------------------②

on 连接条件 -------------------------------③

where 筛选 --------------------------------④

group by 分组列表 ----------------------⑤

having 筛选 -------------------------------⑥

order by排序列表 ------------------------⑧

limit 起始条目索引,条目数; ----------⑨

最后

以上就是现实绿草为你收集整理的【MySQL学习笔记】连接、子、分页、联合查询以及sql语句执行顺序总结的全部内容,希望文章能够帮你解决【MySQL学习笔记】连接、子、分页、联合查询以及sql语句执行顺序总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(93)

评论列表共有 0 条评论

立即
投稿
返回
顶部