和其他计算机语言一样,SQL也支持利用函数来处理数据,但是函数没有SQL可移植性强,每种DBMS的函数可能存在差异,所有当我们使用函数时,最好进行注释一下
一、文本处理函数
我们先来看看常用的文本处理函数都有哪些
函数 | 说明 |
left() | 返回串左边的字符 |
lenght() | 返回串的长度 |
locate() | 找出串的一个字串 |
lower() | 将串转换为小写 |
LTrim() | 去掉串左边的空格 |
RTrim() | 去掉串右边的空格 |
Right() | 返回串右边的字符 |
Soundex() | 返回串的Soundex值 |
SubString() | 返回子串的字符 |
Upper() | 将串转换为大写 |
CONCAT() | 拼接函数 |
Trim() | 去掉所有的空格 |
1、拼接字段函数
现在需要得到一个格式化的数据比如:洗衣机(300),我们就需要用到拼接函数CONCAT
SELECT CONCAT(name,'(',price,')') FROM product
接着我们需要使用别名,用到了关键字AS
SELECT CONCAT(name,'(',price,')') AS title FROM product
2、转换大写函数
SELECT UPPER(name) AS name FROM user
二、日期处理函数
函数 | 说明 |
AddDate() | 增加一个日期(天、周等) |
AddTime() | 增加一个时间(时、分) |
CurDate() | 返回当前日期 |
CurTime() | 返回当前时间 |
Date() | 返回日期时间的日期部分 |
DateDiff() | 计算两个日期之差 |
Date_Format() | 返回一个格式化的日期或时间串 |
Day() | 返回一个日期的天数部分 |
DayOfWeek() | 对于一个日期,返回对应的星期几 |
Hour() | 返回一个日期的小时部分 |
Minute() | 返回一个日期的分钟部分 |
Mouth() | 返回一个日期的月份部分 |
Now() | 返回当前日期和时间 |
Second() | 返回一个时间的秒部分 |
Time() | 返回一个日期时间的时间部分 |
Year() | 返回一个日期的年份部分 |
当我们使用日期查询时,日期格式必须为yyyy-mm-dd 因此2005年9月1日,查询格式应为2005-9-1
下面我们来简单使用以下日期查询
1、假如我们要查询2020年4月13日的产品,由于存储格式都具有时间值,则我们不能使用WHERE last_time = '2020-4-13'查询
解决的办法是使用Date()函数,提取列的日期部分
SELECT * FROM product WHERE DATE(last_time) ='2020-04-13'
2、当我们要查询一个月的数据则可以使用BETWEEN AND
现在查询4月份的数据
SELECT * FROM product WHERE DATE(last_time) BETWEEN '2020-4-1' AND '2020-4-30'
3、如果我们记不住每个月有多少天,则可以用下面的SQL语句
SELECT * FROM product WHERE YEAR(last_time) = 2020 AND MONTH(last_time) = 4
三、数值处理函数
数值函数仅仅处理数值数据,这些函数一般用于代数、三角或几何运算
函数 | 说明 |
Abs() | 返回一个数的绝对值 |
Cos() | 返回一个角度的余弦 |
Exp() | 返回一个数的指数值 |
Mod() | 返回除操作的余数 |
Pi() | 返回圆周率 |
Rand() | 返回一个随机数 |
Sin() | 返回一个角度的正弦 |
Sqrt() | 返回一个数的平方根 |
Tan() | 返回一个角度的正切 |
总结:本章只是初步介绍了MYSQL函数的应用,具体函数的应用和变化,必须根据MySQL具体版本查阅文档