MySQL

MySQL 知识量:16 - 40 - 165

5.2 使用函数><

文本处理函数- 5.2.1 -

SQL语言支持使用函数来处理数据,但是不同的DBMS支持的函数并不一定通用,很多都是某个DBMS专用函数,因此如果要使用函数,就需要专门学习某个DBMS的函数。MySQL也有许多的数据处理函数,可以高效的完成数据库数据的处理。

MySQL的文本处理函数除了trim()、ltrim()、rtrim()以外,还有许多。其常用的文本处理函数如下:

函数说明
left()返回字符串左边的字符
right()返回字符串右边的字符
length()返回字符串长度
locate()找出字符串的一个子串
lower()将文本转换为小写
upper()将文本转换为大写
soundex()返回字符串的soundex值
substring()返回子串的字符

1、upper()

select name,upper(name) from student;

查询学生的姓名和将姓名列值全部转换为大写字母的姓名。结果为:

+-------+-------------+
| name  | upper(name) |
+-------+-------------+
| Susan | SUSAN       |
| Jame  | JAME        |
| Bob   | BOB         |
| Robot | ROBOT       |
| Jen   | JEN         |
| Toney | TONEY       |
+-------+-------------+

2、soundex()

select name from student where soundex(name)=soundex('Tom');

查询姓名发音与“Tom”相似的学生信息。结果为:

+-------+
| name  |
+-------+
| Toney |
+-------+

soundex是一个将任何文本串转换为描述其语音表示的字母数字模式的算法,也就是说,它能对字符串进行发音比较而不是字母比较。

日期和时间函数- 5.2.2 -

数据库的日期和时间采用特殊的格式存储,要在应用程序中使用往往需要进行一定的处理,MySQL常用的日期和时间处理函数如下:

函数说明
now()返回当前日期和时间
curdate()返回当前日期
curtime()返回当前时间
adddate()增加一个日期(天、周等)
addtime()增加一个时间(时、分等)
datediff()计算两个日期之差
date_add()高度灵活的日期运算函数
date_format()返回一个格式化的日期或时间串
dayofweek()对应一个日期,返回对应的星期几
date()返回日期时间的日期部分
time()返回日期时间的时间部分
year()返回一个日期的年份部分
month()返回一个日期的月份部分
day()返回一个日期的天数部分
hour()返回一个时间的小时部分
minute()返回一个时间的分钟部分
second()返回一个时间的秒部分

注意:MySQL使用的日期格式必须为“yyyy-mm-dd”。

以下是一些使用日期时间函数的例子:

1、查询当前时间

select curtime();

返回结果:

+-----------+
| curtime() |
+-----------+
| 12:36:18  |
+-----------+

2、查询今天是几号

select day(curdate());

返回结果:

+----------------+
| day(curdate()) |
+----------------+
|             15 |
+----------------+

3、查询5天后星期几

select dayofweek(adddate(now(),5));

返回结果:

+-----------------------------+
| dayofweek(adddate(now(),5)) |
+-----------------------------+
|                           5 |
+-----------------------------+

注意:dayofweek()的结果从1开始编码,即:1=星期天,2=星期一, ...7=星期六。所以5就表示是星期四。

数值处理函数- 5.2.3 -

数值处理函数仅处理数值数据,主要用于代数、三角和几何运算。MySQL的常用数值处理函数如下:

函数说明
abs()返回一个数的绝对值
exp()返回一个数的指数值
sqrt()返回一个数的平方根
sin()返回一个角度的正弦
cos()返回一个角度的余弦
tan()返回一个角度的正切
mod()返回除操作的余数
pi()返回圆周率
rand()返回一个随机数

查询圆周率

select pi();

返回结果:

+----------+
| pi()     |
+----------+
| 3.141593 |
+----------+