MySql查询总结

    技术2025-07-07  23

    一、内连接

    //语法: 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. 分类:

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

    五、分页查询

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

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

    六、联合查询

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

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

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

    Processed: 0.011, SQL: 9