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() 返回回一个角度的正切

猜你喜欢

转载自blog.csdn.net/u010960184/article/details/80566881