• mysql的基本查询操作


    1、分组查询

    select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

    where与having的区别:

    1. 执行时机不同:where在分组之前过滤,having是分组之后过滤

    1. 判断条件不同:where不能对聚合函数进行判断,而having可以

    案例:

    查询产值记录表中的产值之和并按照年份和月份分组,只查询2022年与2021年没有被删除且上报状态为已上报的记录

    1. select year,month,sum(output_value) as sumOutputValueYearly
    2. where delete_flag = 0 and report_status = 1 and (year = 2021 or year = 2022)
    3. group by year,month

    2、排序查询

    select 字段列表 from 表名 order by 字段1 排序方式1 , 字段2 排序方式2

    排序方式

    • ASC:升序(默认值)

    • DESC:降序

    注意

    如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

    案例:

    查询产值记录表中的产值之和并按照年份降序、月份升序排序,只查询2022年与2021年没有被删除且上报状态为已上报的记录

    1. select year,month,sum(output_value) as sumOutputValueYearly
    2. where delete_flag = 0 and report_status = 1 and (year = 2021 or year = 2022)
    3. order by year desc,month asc

    3、分页查询

    select 字段列表 from 表名 limit 起始索引,查询记录数;

    注意

    1. 起始索引从0开始,起始索引 = (查询页面 - 1) * 每页显示记录数

    1. 分页查询是数据库的方言,不同的数据库有不同的实现,Mysql中用的是limit

    1. 如果查询的是第一页数据,起始索引可以忽略,直接简写为limit 10.

    案例

    查询第一页员工数据,每页展示10条记录

    select * from emp limit 0,10;

    查询第二页员工数据,每页展示10条记录(起始索引 = (查询页面 - 1) * 每页显示记录数)

    select * from emp limit 10,10

    4、多表查询

    一对多查询

    查询政策表中全部内容以及政策类型表中对应的政策类型(一个政策分类下有多个政策)

    在多表中添加一表的关联字段

    1. SELECT
    2. p.id id,
    3. p.cover_url coverUrl,
    4. p.title title,
    5. p.content content,
    6. p.release_unit releaseUnit,
    7. p.release_status releaseStatus,
    8. p.release_time releaseTime,
    9. p.update_time updateTime,
    10. p.create_time createTime,
    11. p.delete_flag deleteFlag,
    12. c.id categoryId,
    13. c.name categoryName
    14. FROM
    15. t_policy p
    16. left join dic_policy_category c on p.category_id = c.id

    多对多查询

    一个企业可以有多个分类,一个企业分类下可以有多个企业

    建立中间表进行联查

    1. SELECT
    2. e.id,
    3. e.name as enterpriseName,
    4. GROUP_CONCAT(c.name) as categoryName,
    5. e.license_url as licenseUrl,
    6. e.register_capital as registerCapital,
    7. o.name as operationName,
    8. e.legal_person as legalPerson,
    9. e.legal_person_phone as legalPersonPhone,
    10. e.audit_status as auditStatus,
    11. e.audit_time as auditTime,
    12. e.update_time as updateTime,
    13. e.delete_flag as deleteFlag
    14. FROM
    15. `t_enterprise` e
    16. left join ref_enterprise_category ref on e.id = ref.enterprise_id
    17. left join dic_enterprise_category c on c.id = ref.category_id
    18. left join dic_operation_status o on e.operate_status_id = o.id
    19. group by e.id,enterpriseName
    20. having deleteFlag = 0 and auditStatus = 0

  • 相关阅读:
    LuatOS-SOC接口文档(air780E)--camera - codec - 多媒体-编解码
    QML<10> qml 文件的插件封装 ,打包发布 ,隐藏qml文件
    QT常用的控件总结
    uniapp 实现拍照 相册选取选视频和照片
    【C++ 科学计算】C++ 一维数据插值算法
    远程服务调用的简单应用,并轻松解决LinkedHashMap无法转成相关实体类的问题
    落地护眼阅读灯哪个牌子好?落地灯品牌排行榜
    JVM之垃圾回收器一
    类似ps的python工具lama cleaner
    ROS自学笔记十四:URDF语法详解
  • 原文地址:https://blog.csdn.net/qq_51383106/article/details/125995457