MySQL学习足迹记录09--常用文本,日期,数值处理函数_MySQL

php中文网
发布: 2016-06-01 13:31:43
原创
1353人浏览过

bitsCN.com

mysql学习足迹记录09--常用文本,日期,数值处理函数

 

1. 文本处理函数

   这里只介绍Soundex(str)函数,其它的函数无需记忆,只需大概记得函数名就OK了,

    要用时再用HELP命令查看一下用法。

   eg:HELP Upper;

*Soundex(str):对字符串进行发音比较而不是字母比较

  先列出所以cust_contact的数据

  

星辰Agent
星辰Agent

科大讯飞推出的智能体Agent开发平台,助力开发者快速搭建生产级智能体

星辰Agent 404
查看详情 星辰Agent

mysql> SELECT cust_contact FROM customers;+--------------+| cust_contact |+--------------+| Y Lee        || Jerry Mouse  || Jim Jones    || Y Sam        || E Fudd       |+--------------+5 rows in set (0.00 sec) 假设你只记得顾客的实际名是Y. Lie,现在要找 Y Lee的数据 mysql> SELECT cust_name,cust_contact FROM customers          -> WHERE cust_contact = 'Y. Lie';      #查找失败Empty set (0.00 sec) 现在用Soundex()对字符串进行发音比较mysql> SELECT cust_contact FROM customers         -> WHERE Soundex(cust_contact) = Soundex('Y. Lie');+--------------+                | cust_contact |                               #ok,查找成功+--------------+| Y Lee        |+--------------+1 row in set (0.00 sec)
登录后复制

 

 

  常用函数参考(可跳过):

 *Upper():将文本转换为大写   eg:     mysql> SELECT vend_name,Upper(vend_name)              -> AS vend_name_upcase             -> FROM vendors             -> ORDER BY vend_name;+----------------+------------------+| vend_name      | vend_name_upcase |+----------------+------------------+| ACME           | ACME             || Anvils R Us    | ANVILS R US      || Furball Inc.   | FURBALL INC.     || Jet Set        | JET SET          || Jouets Et Ours | JOUETS ET OURS   || LT Supplies    | LT SUPPLIES      |+----------------+------------------+ 6 rows in set (0.00 sec) *LEFT(str,len):        Returns the leftmost len characters from the string str,         or NULL if any argument is NULL.  Examples:mysql> SELECT LEFT('Hello',3);+-----------------+| LEFT('Hello',3) |+-----------------+| Hel             |+-----------------+1 row in set (0.00 sec) *LENGTH(str):      Returns the length of the string str, measured in bytes.Examples:    mysql> SELECT LENGTH('Hello');+-----------------+| LENGTH('Hello') |+-----------------+|               5 |+-----------------+1 row in set (0.00 sec) *LOCATE(substr,str), LOCATE(substr,str,pos):            The first syntax returns the position of the first occurrence of            substring substr in string str. The second syntax returns the position            of the first occurrence of substring substr in string str, starting at            position pos. Returns 0 if substr is not in str.  Examples:   mysql> SELECT LOCATE('es','chinese');+------------------------+| LOCATE('es','chinese') |+------------------------+|                      5 |+------------------------+1 row in set (0.00 sec)mysql> SELECT LOCATE('ue','queue',3);+------------------------+| LOCATE('ue','queue',3) |+------------------------+|                      4 |+------------------------+1 row in set (0.00 sec)mysql> SELECT LOCATE('al','hello');+----------------------+| LOCATE('al','hello') |+----------------------+|                    0 |+----------------------+1 row in set (0.00 sec)  *LOWER(str):       Returns the string str with all characters changed to lowercase  Examples:  mysql> SELECT LOWER('HELLO');+----------------+| LOWER('HELLO') |+----------------+| hello          |+----------------+1 row in set (0.00 sec)  *RIGHT(str,len)       Returns the rightmost len characters from the string str,        or NULL if any argument is NULL.  Examples:  mysql> SELECT RIGHT('queue',3);+------------------+| RIGHT('queue',3) |+------------------+| eue              |+------------------+1 row in set (0.00 sec)
登录后复制

 

 2.常用日期和时间处理函数

  大部分都比较简单,函数名即代表了它们的功能,无需刻意记忆.  AddDate(),AddTime(),CurDate,CurTime(),Date().  DateDiff():计算两个日期之差  Date_Add(),Date_Format(),Day(),DayOfWeek(),Hour(),Month(),Now(),Second(),Time(),Year()   *MySQL使用的日期格式yyyy-mm-dd Examples:  先列出orders所有的日期数据 mysql> SELECT order_date FROM orders;+---------------------+| order_date          |+---------------------+| 2005-09-01 00:00:00 || 2005-09-12 00:00:00 || 2005-09-30 00:00:00 || 2005-10-03 00:00:00 || 2005-10-08 00:00:00 |+---------------------+5 rows in set (0.00 sec)mysql> SELECT cust_id,order_num        -> FROM orders       -> WHERE order_date = '2005-09-01';    # WHERE order_date = '2005-09-01'并不可靠     +---------+-----------+                                                                             #假如order_date的值为‘2005-09-01 11:30:05’则检索失败| cust_id | order_num |+---------+-----------+|   10001 |     20005 |+---------+-----------+1 row in set (0.00 sec)
登录后复制

 

  

 解决办法,用Date()函数

 mysql> SELECT cust_id,order_num         -> FROM orders         -> WHERE Date(order_date) = '2005-09-01';+---------+-----------+| cust_id | order_num |+---------+-----------+|   10001 |     20005 |+---------+-----------+1 row in set (0.00 sec)
登录后复制

 

 

 练习:检索2005年9月的所有订单

  法一:

   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.00 sec)
登录后复制

 

  

  法二:(无需记住每月有多少天,而且不需要操心闰年2月)

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.00 sec)
登录后复制

 

  

3.数值处理函数

  Abs(),Cos(),Sin(),Sqrt(),Tan(),Pi()

  Mod():返回除操作的余数

  Exp(): 返回一个数的指数值

bitsCN.com
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号