zoukankan      html  css  js  c++  java
  • mysql进阶三四五六

    排序查询

    一、语法

    select 查询表

    from 表

    where 筛选条件

     order by 排序列表[asc / desc]

    特点:

    1、asc:升序

    desc:降序

    2、排序列表之中支持单字段,多字段、函数、表达式、别名

    3、order by的位置一般放在查询语句的最后(除limit之外)

    常见函数:

    功能:提高重用性

      隐藏了实现细节

    调用函数语法:

    select 函数名(实参列表);

    二、单行函数

    1、字符函数

      concat:连接

      substr:截取字符串

      upper/lower:大写、小写

      repalce:替换

      length:获取字节长度

      trim:去前后空格

      lpad/rpad:左右填充

      instr:获取字串第一次出现的索引

    2、数学函数

      ceil:向上取整

      round:四舍五入

      mod:取整

      floor:向下取整

      truncat:阶段

      rand:获取随机数

    3、日期函数

      date:

      now:

      year:

      month:

      day:

      date_format:

      curdate:

      str_to_date:

      curtime:

      hour:

      minute:

      second:

      datediff:两个时间相差天数

      monthname:

      

      

    4、其他函数

      wersion:数据库服务器版本

      database:当前打开数据库

      password:返回该字符的密码形式

      md5:返回该字符的md5加密形式

    5、流程控制函数

      if(条件表达式,表达式1,表达式2):如果条件表达式成立,返回1,否则返回2

      case情况1

      case  变量或表达式或字段

      when 常量1 then 值1

      when。。。。

      else。。。

      end

      case 情况2

      

    case  

      when 条件1 then 值1

      when。。。。

      else。。。

      end

    三、分组函数

    1、分类

    max:最大值

    min:最小值

    avg:平均值

    sum:求和

    count:计数

    2、特点

    1、语法

      select max(字段)from 表名

    2、支持的类型

      sum和avg一般用于处理数值型

      max、min、cuount可以处理任何数据类型

      以上分组函数都忽略null

      都可以和distinct使用,实现去重统计

      count函数

        conut(字段):统计该字段非空值的个数

        count(*):统计结果集的行数

      和分组函数一同查询的字符,要求group by后的字段

    分组查询

    语法:

    select 分组函数,分组后的字段,

    from 表

    【where 筛选条件】

    group by 分组的字段

    【having 分组后的筛选】

    【order by 排序列表】

    特点

                    使用关键字                       筛选的表                             位置

    分组前的筛选         where                                   原始表                            group by的前面   

    分组后的筛选         having                              分组后的结果                       group by的后面

    连接查询

    含义:当查询中涉及到了多个表的字段,需要使用多表连接

    语法

    select 字段1,字段2

    from 表1,表2;

    笛卡尔乘积:当查询多个表时,没有添加有效的连接条件,导致多个表所有行实现全连接

    分类:

    按年代分类:

    sql92:

    等值、

    语法:

    select 查询列表

    from 表1 别名,表二,别名

    where 表1.key=表2.key

    【and 筛选条件】

    【group by 分组字段】

    【having 分组后的筛选 】

    【order by 排序自组但】

    特点:

      起别名

      多表顺序可调换

      n表连接至少需要n-1个链接条件

      等值链接时多表的交集部分

    非等值

    select 查询列表

    from 表1 别名,表二,别名

    where 非等值的链接条件

    【and 筛选条件】

    【group by 分组字段】

    【having 分组后的筛选 】

    【order by 排序自组但】

    、自连接

    select 查询列表

    from 表1 别名,表1,别名

    where 表1.key=表1.key

    【and 筛选条件】

    【group by 分组字段】

    【having 分组后的筛选 】

    【order by 排序自组但】

    也支持一部分外连接,但不稳定

    sql99【推荐使用】:

      内链接

        等值,非等值,自连接

      外连接

          左外、右外、全外(不支持)

      交叉连接

       

  • 相关阅读:
    Hive(八)Hive的Shell操作与压缩存储
    Hive(七)Hive分析窗口函数
    Hive(六)内置函数与高级操作
    Hive(五)数据类型与库表操作以及中文乱码
    Hive(四)Hive的3种连接方式与DbVisualizer连接Hive
    iOS性能调优系列(全)
    iOS性能优化-内存优化
    iOS 25个性能优化/内存优化常用方法
    iOS CoreData版本升级和数据库迁移
    FMDB数据迁移
  • 原文地址:https://www.cnblogs.com/zhibei/p/9317124.html
Copyright © 2011-2022 走看看