MySql学习笔记(三) - 函数

现有表


1. 文本处理函数

Upper():将小写转换为大写

输入:SELECT id,Upper(name) FROM t_order

输出:

+----+-------------+
| id | Upper(name) |
+----+-------------+
|  1 | 张三        |
|  2 | 李四        |
|  3 | 王五        |
|  4 | NICK        |
|  5 | JACK        |

+----+-------------+

函数说明
Left()返回串左边的字符
Length()返回串的长度
Locate()找出串的一个子串
Lower()将串转换为小写
LTrim()去掉串左边的空格
Right()返回串右边的字符
RTrim()去掉串右边的空格
Soundex()返回串的SOUNDEX值 **1
SubString()返回子串的字符
Upper()将串转换为大写

1. SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的发音和音节,使得能对串进行发音比较而不是字母比较。虽然SOUNDEX不是SQL概念,但MySql都提供对SOUNDEX的支持。

例如输入:SELECT id,name FROM t_order WHERE name = 'jick'

输出:Empty set

用Soundex()函数进行搜索,他匹配所有发音类似于 'jick' 的串。

输入:SELECT id,name FROM t_order WHERE Soundex(name) = Soundex('jick')

输出:

+----+------+
| id | name |
+----+------+
|  5 | jack |

+----+------+


2. 日期和时间处理函数

函数说明
AddDate()增加一个日期(天、周等)
AddTime()增加一个时间(时、分等)
CurDate()返回当前日期
CurTime()返回当前时间
Date()返回日期时间的日期部分
DateDiff()计算两个日期之差
Date_add()高度灵活的日期运算函数
Date_Format()返回一个格式化的日期或时间串
Day()返回一个日期的天数部分
DayOfWeek()对于一个日期,返回对应的星期几
Hour()返回一个时间的小时部分
Minute()返回一个时间的分钟部分
Month()返回一个日期的月份部分
Now()返回当前日期和时间
Second()返回一个时间的秒部分
Time()返回一个日期时间的时间部分
Year()返回一个日期的年份部分

MySql使用的日期格式。无论什么时候指定一个日期,不管是插入或更新表值还是用WHERE子句进行过滤,日期必须为格式yyyy-mm-dd

现有表


输入:SELECT id,name,birthday FROM t_order WHERE birthday = '2018-06-04'

输出:

+----+------+------------+
| id | name | birthday   |
+----+------+------------+
|  3 | 王五 | 2018-06-04 |

+----+------+------------+

    当 WHERE 条件字段类型为 data时,搜索可用。但是如果想要搜索 create_time 时间为 2018-06-04 15:12:51时,上面的方法就不行了。因为 create_time 数据类型为 datetime ,条件要列出 hh:mm:ss。

    解决办法是只是MySql仅将给出的日期与列中的日期部分进行比较,而不是将给出的日期与整个列值进行比较。为此,必须使用Date()函数。Date(create_time)指示MySql近提取列的日期部分,更可靠的SELECT语句为:

SELECT id,name,create_time FROM t_order WHERE Date(create_time) = '2018-06-04';

    如果想要检索2018年6月生日的人:

输入:SELECT id,name,birthday FROM t_order WHERE birthday BETWEEN '2018-06-01' AND '2018-06-30'

输出:

+----+------+------------+
| id | name | birthday   |
+----+------+------------+
|  1 | 张三 | 2018-06-02 |
|  3 | 王五 | 2018-06-04 |

+----+------+------------+

还有另外一种办法:SELECT id,name,birthday FROM t_order WHERE Year(birthday) = 2018 AND Month(birthday) = 6


3. 数值处理函数

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值