美文网首页我爱编程
【MySQL必知必会】第11章:数据处理函数

【MySQL必知必会】第11章:数据处理函数

作者: 100gle | 来源:发表于2018-04-09 16:36 被阅读22次

    11.1 函数

    大多数SQL支持以下几类型的函数:

    • 文本处理函数
    • 数值处理函数
    • 日期处理函数
    • 系统函数

    11.2 文本函数

    大小写转换

    使用Upper()Lower()函数可以对字段的值进行大小写转换

    #大写
    SELECT vend_name, Upper(vend_name) AS vend_name_upcase
    FROM vendors
    ORDER BY vend_name;
    
    #小写
    SELECT vend_name, Lower(vend_name) AS vend_name_upcase
    FROM vendors
    ORDER BY vend_name;
    

    拼写纠正

    使用Soundex可以对字段中发音不对的值进行发音类似的匹配:

    SELECT cust_name, cust_contact
    FROm customers
    WHERE Soundex(cust_contact) = Soundex('Y Lie');
    

    11.3 数值处理函数

    数值处理函数仅处理数值数据。这些函数一般主要用于代数、三角 或几何运算,因此没有串或日期—时间处理函数的使用那么频繁;并且数值函数是最一致最统一的函数:

    • 所有函数都时首字母大写
    • Abs():求绝对值
    • Exp():求指数值
    • Mod():求余
    • Sqrt():求平方根
    • Sum():求和

    11.4 日期处理函数

    日期和时间采用相应的数据类型和特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间:

    • Date()(除此之外还有Month、Day、Hour的等):返回日期时间的日期部分(或对应部分)
    • Now():返回当前日期和时间
    • Year():返回日期的年份部分

    在使用日期值时,需要注意的是:

    • 日期必须为「yyyy-mm-dd」格式才能进行操作
    • 虽然MySQL支持2位数年份,但是使用完安政的4位数字年份更可靠

    如果不先考虑日期值的格式问题就进行操作检索,那么很有可能导致检索失败;最稳妥的办法就是使用相应部分的函数来对日期值字段进行读取:

    #检索失败
    SELECT cust_id, order_num
    FROM orders
    WHERE order_date = '2005-09-01';
    
    #使用正则表达式检索
    SELECT cust_id, order_num
    FROM orders
    WHERE Date(order_date) REGEXP '2005-09-[01-30]'
    

    相关文章

      网友评论

        本文标题:【MySQL必知必会】第11章:数据处理函数

        本文链接:https://www.haomeiwen.com/subject/ruvihftx.html