MySql查询总结

一、内连接

//语法:
select 查询列表
from1 别名
【innerjoin2 on 连接条件
where 筛选条件
group by 分组列表
having 分组后的筛选
order by 排序列表
limit 字句;
//特点:
1. 表的顺序可以调换
2. 内连接的结果 = 多表的交集
3. n表连接至少需要n-1个连接条件
//分类
4. 等值连接
5. 非等值连接
6. 自连接

二、外连接

//语法:
select 查询列表
from1 别名
left | right | fullouterjoin2 on 连接条件
where 筛选条件
group by 分组列表
having 分组后的筛选
order by 排序列表
limit 字句;
//特点:
1. 查询的结果 = 主表中所有的行,如果从表和它匹配的将显示匹配行,如果从表没有匹配的则显示null
2. left join 左边的就是主表 , right join  右边的就是主表 , full join 两边都是主表
3. 一般用于查询除了交集部分的剩余的不匹配的行

三、交叉连接

//语法
select 查询列表
from1 别名
cross join2 别名;
//特点:
类似于笛卡尔乘积

四、子查询

1. 含义:

嵌套在其他语句内部的select语句称为子查询或内查询,外面的语句可以是insert、update、delete、select等,一般select作外面语句较多
外面如果为select语句,则此语句称外查询或主查询

2. 分类:

  1. 按出现的位置
    select 后面 :仅仅支持标量子查询
    from 后面 :表子查询
    where 或 having 后面 : 标量子查询 列子查询 行子查询
    exists 后面 : 标量子查询 列子查询 行子查询 表子查询
  2. 按结果集的行列
    标量子查询(单行子查询):结果集为一行一列
    列子查询(多行子查询):结果为多行一列
    行子查询:结果集为多行多列
    表子查询:结果集为多行多列

五、分页查询

应用场景:当要查询的条目数太多,一页显示不全

语法:
select 查询列表
fromlimit offset,size;
注意:offset 代表的是起始条目的索引,默认从 0 开始
size 代表显示的条目数
公式:
假如要显示的页数为 page ,每一页条目数为 size
select 查询列表
fromlimit (page-1)*size,size;

六、联合查询

含义:union 合并、联合,将多次查询结果合并成一个结果
语法:

查询语句1 unionall】 查询语句2 unionall....

意义:
① 将一条比较复杂的查询语句拆分成多条语句
② 适用于查询多个表的时候,查询的列基本一致
特点:
① 要求多条查询语句的查询列数必须一致
② 要求多条查询语句的查询的各列类型、顺序最好一致
③ union 去重,union all 包含重复项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值