• MySql 中 select 使用


    MySql select 多种查询方式

    前言

    在数据库使用过程中,使用最多的场景就是查询数据,所以今天我们总结一下常用用的查询

    • 简单查询
    • 带条件查询
    • 多条件查询
    • 输出指定字段查询
    • 分组查询
    • 查询结果排序
    • 分页查询
    • 多表之间查询

    准备三张表:订单 orders 商品 commodity 用户 users 内容如下:
    orders 表:

    users 表:

    commodity 表:

    简单查询

    语法:

    select * from 表名
    

    执行查询语句, 查询 commodity 表所有数据

    select * from commodite ;
    

    WHERE 带条件查询

    • 带条件查询是在select 语句后面添加 where
    • 可以使用 and 或者 or 链接一个或多个条件
    • and 同时要满足两个或两个以上条件
    • or 满足两个或两个以上其中一个条件
      操作符:
    • = 等于 !=,<> 不等于 > 大于 < 小于 >= 大于等于 <=
      语法
    select * from 表名 where 条件1 and 条件2 or 条件3 ;
    

    列子:查询 commodity 表中 id = 1 的商品信息

    select * from commodity where id = 1 ;
    

    多条件查询

    查询 commodity 表中 order_id = 1 并且 user_id = 1

    select * from commodity where order_id = 1 and user_id = 1 ;
    

    查询 commodity 表中 order_id = 1 或者 user_id = 1

    select * from commodity where order_id = 1 or user_id = 1 ;
    

    输出指定字段查询

    在查询表数据的时,有时我们只需要其中几个字段,这个是我们指定需要字段即可
    语法

    select1, 列2, ... from 表明 WHERE 条件可选
    

    下面我们查询 commodity 表输出 商品名

    select c_name from commodity ;
    

    结果只输出了 c_name 一列数据

    下面我们添加条件查询看下效果

    select c_name from commodity where order_id = 1 ;
    

    分组查询

    在实际使用是,我们还会用到根据其中一列分组查询,下面我们看下语法

    select 用于分组的列, 用于运算的列 from commodity group by 用于分组的列
    

    下面我们查询 commodity ,按照 order_id 进行分组

    select order_id from commodity group by order_id;
    

    按照 order_id 分组之后我们再看下每一组具体有多少条数据

    select order_id, COUNT(order_id) from commodity group by order_id;
    

    • 按照 order_id 分组,计算每一组数量 count(order_id)

    查询结果排序

    很多时候我们需要对查询结果进行排序这个时候我们会用到 order by

    select * from 表名 order by 排序字段 排序规则
    

    排序规则

    • DESC 降序
    • ASC 升序 默认

    现在我们查询一下 commodity 结果按 order_id 排序

    select * from commodity order by order_id ASC ;
    

    select * from commodity order by order_id DESC ;
    

    分页查询

    在实际业务常常会用到分页查询功能
    语法

    select * from commodity limit 条数 offset 起始位置;
    

    下面我们查询 commodity 表,从第二条开始查询,结果输出两条数据

    select * from commodity limit 2 offset 1;
    

    下面我们把上面的所有语法练习一下

    查询 commodity 表,条件是order_id = 1 或者 user_id != 4 按照 order_id 分组 按照user_id 排序 输出 order_id user_id 列 查询结果从第二条开始 只查询4条

    select order_id, user_id from commodity where order_id = 1 or user_id != 4 group by order_id, user_id order by user_id DESC limit 4 offset 1;
    

  • 相关阅读:
    多因子组合优化:指数增强策略(附源码入口)
    想问一下如何用74LS151的实现(相关搜索:序列信号发生器)
    推荐几本这个系列封面的编程书,涉及Python、计算机图形学、Linux
    【进阶玩法】策略+责任链+组合实现合同签章
    【算法面试必刷Java版十】两个链表的第一个公共结点
    面试百问:项目上线后才发现bug怎么办?
    虚拟现实(VR)的应用场景
    物理机服务器应该注意的事
    每日一博 - CRUD system VS Event sourcing design
    群晖下虚拟机编译部署WOW服务端TrinityCore
  • 原文地址:https://www.cnblogs.com/yidejiyi/p/18249303