• MySQL函数


    常用文本处理函数

    函 数 说 明
    Left() 返回串左边的字符
    Length() 返回串的长度
    Locate() 找出串的一个子串
    Lower() 将串转换为小写
    LTrim() 去掉串左边的空格
    Right() 返回串右边的字符
    RTrim() 去掉串右边的空格
    Soundex() 返回串的SOUNDEX值
    SubString() 返回子串的字符
    Upper() 将串转换为大写
    mysql> SELECT cust_name,cust_contact 
           FROM customers
           WHERE Soundex(cust_contact)=Soundex('Y Lie');
    +-------------+--------------+
    | cust_name   | cust_contact |
    +-------------+--------------+
    | Coyote Inc. | Y Lee        |
    +-------------+--------------+
    1 row in set (0.00 sec)
    
    • SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法;
    • SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较;
    • 在这个例子中,WHERE子句使用Soundex()函数来转换cust_contact列值和搜索串为它们的SOUNDEX值。因为Y.Lee和Y.Lie发音相似,所以它们的SOUNDEX值匹配,因此WHERE子句正确地过滤出了所需的数据。

    日期和时间处理函数

    函数 说明
    AddDate() 增加一个日期(天、周等)
    AddTime() 增加一个时间(时、分等)
    CurDate() 返回当前日期
    CurTime() 返回当前时间
    Date() 返回日期时间的日期部分
    DateDiff() 计算两个日期之差
    Date_Add() 高度灵活的日期运算函数
    Date_Format() 返回一个格式化的日期或时间串
    Day() 返回一个日期的天数部分
    DayOfWeek() 对于一个日期,返回对应的星期几
    Hour() 返回一个时间的小时部分
    Minute() 返回一个时间的分钟部分
    Month() 返回一个日期的月份部分
    Now() 返回当前日期和时间
    Second() 返回一个时间的秒部分
    Time() 返回一个日期时间的时间部分
    Year() 返回一个日期的年份部分
    mysql> SELECT cust_id,order_num 
           FROM orders 
           WHERE Date(order_date)
           BETWEEN '2005-09-01' AND '2005-09-30';
    +---------+-----------+
    | cust_id | order_num |
    +---------+-----------+
    |   10001 |     20005 |
    |   10003 |     20006 |
    |   10004 |     20007 |
    +---------+-----------+
    3 rows in set (0.02 sec)
    
    mysql> SELECT cust_id,order_num
           FROM orders 
           WHERE Year(order_date)=2005 AND Month(order_date)=9;
    +---------+-----------+
    | cust_id | order_num |
    +---------+-----------+
    |   10001 |     20005 |
    |   10003 |     20006 |
    |   10004 |     20007 |
    +---------+-----------+
    3 rows in set (0.01 sec)
    
    • 检索出2005年9月下的所有订单;

    数值处理函数

    函 数 说 明
    Abs() 返回一个数的绝对值
    Cos() 返回一个角度的余弦
    Exp() 返回一个数的指数值
    Mod() 返回除操作的余数
    Pi() 返回圆周率
    Rand() 返回一个随机数
    Sin() 返回一个角度的正弦
    Sqrt() 返回一个数的平方根
    Tan() 返回一个角度的正切

    聚集函数

    函 数 说 明
    AVG() 返回某列的平均值
    COUNT() 返回某列的行数
    MAX() 返回某列的最大值
    MIN() 返回某列的最小值
    SUM() 返回某列值之和

    聚集不同值

    mysql> SELECT AVG(DISTINCT prod_price)AS avg_price 
           FROM products 
           WHERE vend_id=1003;
    +-----------+
    | avg_price |
    +-----------+
    | 15.998000 |
    +-----------+
    1 row in set (0.02 sec)
    
    • 使用AVG()函数返回特定供应商提供的产品的平均价格。
    • 如果指定列名,则DISTINCT只能用于COUNT()。DISTINCT不能用于COUNT(*),因此不允许使用COUNT(DISTINCT),否则会产生错误。类似地,DISTINCT必须使用列名,不能用于计算或表达式。

    组合聚集函数

    mysql> SELECT COUNT(*) AS num_items,
           MIN(prod_price) AS price_min,
           MAX(prod_price) AS price_max,
           AVG(prod_price) AS price_avg 
           FROM products;
    +-----------+-----------+-----------+-----------+
    | num_items | price_min | price_max | price_avg |
    +-----------+-----------+-----------+-----------+
    |        14 |      2.50 |     55.00 | 16.133571 |
    +-----------+-----------+-----------+-----------+
    1 row in set (0.01 sec)
    
    • 这里用单条SELECT语句执行了4个聚集计算,返回4个值(products表中物品的数目,产品价格的最高、最低以及平均值)。

    注意

    • NULL值 聚集函数忽略列值为NULL的行;
    • AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。
    • 如果指定列名,则指定列的值为空的行被COUNT()函数忽略,但如果COUNT()函数中用的是星号(*),则不忽略。
    • 对非数值数据使用MAX() 虽然MAX()一般用来找出最大的数值或日期值,但MySQL允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行。
    • 对非数值数据使用MIN() MIN()函数与MAX()函数类似,MySQL允许将它用来返回任意列中的最小值,包括返回文本列中的最小值。在用于文本数据时,如果数据按相应的列排序,则MIN()返回最前面的行。
  • 相关阅读:
    八张图读懂未来“互联网+”的六大趋势
    跑一段代码遍历所有汉字
    PHP业务逻辑层和数据访问层设计
    漫谈社区PHP 业务开发
    以Apache服务器、php语言为例 详解动态网站的访问过程
    sublime text
    《产品经理的20堂必修课》
    检测文件是否有bom头
    利用开源框架Volley来下载文本和图片。
    往SD卡中写文件的方法。
  • 原文地址:https://www.cnblogs.com/chengmf/p/13150967.html
Copyright © 2020-2023  润新知