Mysql学习003

分组查询:

  1. 语法

    select 列 from 表

    ​ where

       	group by
    

    ​ order by

  2. 示例:

    统计菜单中不同类型的菜单数目:

    SELECT COUNT(menu_type) as num,menu_type FROM sys_menu
    GROUP BY menu_type
    ORDER BY num ASC;
    
  3. 示例:

    统计菜单中不同类型的菜单中含有"管理"的菜单数目:

    SELECT COUNT(menu_type) as num,menu_type FROM sys_menu
    WHERE menu_name LIKE '%管理%'
    GROUP BY menu_type
    ORDER BY num ASC;
    
  4. 示例 :

    统计菜单中不同类型的菜单的菜单数目大于5:

    SELECT COUNT(menu_type) as num,menu_type FROM sys_menu
    WHERE menu_name LIKE '%管理%'
    GROUP BY menu_type
    HAVING num > 5;
    
  5. 按表达式或函数分组

    统计菜单中的菜单长度的种类:

    SELECT length(path) as num FROM sys_menu
    WHERE menu_name LIKE '%管理%'
    GROUP BY num;
    
  6. 按多个字段分组

    示例:略

  7. 支持排序

  • 连接查询

    1. 笛卡尔积

    2. sql92

      支持内连接

      • 等值连接

        SELECT sys_user.user_name,sys_role.role_name from sys_user,sys_role
        WHERE sys_user.user_id = sys_role.role_id;
        
      • 非等值连接

      • 自连接

    3. sql99

      • 语法:select 列 from 表 [连接类型]

        ​ join 表

        ​ on 连接条件

        ​ where

      • 内连接 inner

      • 外连接

        1. 左外 left
        2. 右外 right
        3. 全连接 full
      • 交叉连接 cross

posted @ 2020-02-18 22:23  it_dog_zhang  阅读(112)  评论(0)    收藏  举报