1、字符函数
函数名称 | 描述
----|------|----
CONCAT() | 字符连接
CONCAT_WS() | 使用指定的分隔符进行字符连接
FORMAT() | 数字格式化
LOWER() | 转换成小写字母
UPPER() | 转换成大写字母
LEFT() | 获取左侧字符
RIGHT() | 获取右侧字符
LENGTH() | 获取字符串长度
LTRIM() | 删除前导空格
RTRIM() | 删除后续空格
TRIM() | 删除前导和后续空格
SUBSTRING() | 字符串截取
[NOT] LIKE() | 模式匹配
REPLACE() | 字符串替换
函数CONCAT()
创建数据表“name”并插入记录:

查看该表数据:

要求查询的结果同时输出“first_name”与“last_name”:

使用“concat()”连接,并赋予别名:

函数CONCAT_WS()
函数CONCAT_WS()要求至少有3个参数,第一个是参数是指定的分隔符,例如“.”,后续的参数是要连接的数据:

函数FORMAT()
函数FORMAT()可以将数字格式化为字符型,“,”之后的数字为保留到几位小数:

函数LOWER()、UPPER()
函数LOWER()可以将数据转化为纯小写字母:

函数UPPER()可以将数据转化为纯大写字母:

函数LEFT()、RIGHT()
函数LEFT()参数中“,”的数字为从左侧获取几位字符:

函数RIGHT()参数中“,”的数字为从右侧获取几位字符,还可以进行函数的嵌套,将获取的字符进行小写转化:

函数LENGTH()
函数LENGTH()可以获取字符串的长度,注意空格也算在长度之内:

函数LTRIM()、RTRIM()、TRIM()
函数LTRIM()可以将第一个字符前的空格删除:

函数RTRIM()可以将最后一个字符后的空格删除:

函数TRIM()可以将字符前后的空格都删除:

除此之外,函数TRIM()还可以删除特定字符,例如使用“LEADING”删除前导特定字符:

使用“TRAILING”删除后续特定字符:

使用“BOTH”删除前导及后续特定字符:

函数SUBSTRING()
函数SUBSTRING()可以截取字符串,参数分别是要截取的内容,从第几位开始截取,截取几位;要注意的是MySQL是从1开始,与Java从0开始不同:

如果只注明从第几位开始截取,那么SUBSTRING()会一直截取到字符串的结尾:

SUBSTRING()的起始位置参数还可以是负值,代表从末尾开始倒数的第几位;但要注意,截取的长度不能是负值,否则结果为空:

函数[NOT] LIKE()
函数LIKE()可以模糊匹配,使用通配符“_”或“%”,“_”指任意一个字母;“%”指任意大于0个字母:
查看数据表“user”中的详细记录:

例如查找姓名第4个字母为“e”的用户记录:

例如查找姓名中含有字母“o”的用户记录:

查看数据表“name”中的详细记录:

查询带有“%”符号的记录:

结果出现了未带有“%”的记录,原因是系统将3个“%”全部认为是通配符,因此,可以在中间的“%”前加转义字符“\”,使系统认为其只是普通的“%”符号,没有特殊意义:

函数REPLACE()
之前的LTRIM()、RTRIM()、TRIM()只能对字符之前或之后的空格进行处理,而对于字符中间的空格则无能为力,对此可以使用REPLACE()进行替换,其参数分别是待处理的字符串,要替换的字符,替换后的字符:

而且要替换的字符及替换后的字符数量并没有限制:

2、数值运算符与函数
数值运算符即常见的:+、-、x、/等等,这里不做详细的演示,而函数如下表所示:
函数名称 | 描述
----|------|----
CEIL() | 进一取整
DIV | 整数除法
FLOOR() | 舍一取整
MOD | 取余数
POWER() | 幂运算
ROUND() | 四舍五入
TRUNCATE() | 数字截取
函数CEIL()、FLOOR()
只要小数点后有位数,函数CEIL()就向上取整;而函数FLOOR()则刚好相反,会向下取整:

函数DIV
函数DIV进行整数除法,结果只保留到整数:

函数MOD
函数MOD进行取余数与取模相同,对于整数或浮点数都适用:

函数POWER()
函数POWER()即幂运算,例如求2的12次方:

函数ROUND()
函数ROUND()就是常见的四舍五入,参数分别是待处理的数据以及要保留几位小数,例如对3.652分别保留2位、1位以及取整:

函数TRUNCATE()
函数TRUNCATE()即数字截断,参数分别是待处理的数据以及要保留几位小数,与ROUND()不同,TRUNCATE()会直接去掉被截断的数字,例如对3.652分别保留2位、1位以及取整:

3、比较运算符与函数
函数名称 | 描述
----|------|----
[NOT] BETWEEN……AND…… | [不]在……范围之内
[NOT] IN() | [不]在列出值范围内
IS [NOT] NULL | [不]为空
函数[NOT] BETWEEN……AND……
查看数据表“user”中的详细记录:

查找年龄在14岁至28岁之间的用户记录:

函数[NOT] IN()
函数[NOT] IN()括号中的内容就是列出值的范围:

函数IS [NOT] NULL
查看数据表“name”:

查找姓名为空的记录:

4、日期时间函数
函数名称 | 描述
----|------|----
NOW() | 当前时间和日期
CURDATE() | 当前日期
CURTIME() | 当前时间
DATE_ADD() | 日期变化
DATEDIFF() | 日期差值
DATE_FORMAT() | 日期格式化
函数NOW()、CURDATE()、CURTIME()
函数NOW()返回当前查询时的日期及时间,而函数CURDATE()、CURTIME()则是分别显示日期或时间:

函数DATE_ADD()
函数DATE_ADD()可以对日期进行增减,参数为代修改的日期以及要增减的量,常用的关键词有YEAR、MONTH、WEEK、DAY等:


函数DATEDIFF()
函数DATEDIFF()可以计算日期之间差值,例如2016年6月28日距离现在相差多少:

函数DATE_FORMAT()
函数DATE_FORMAT()可以转换日期的格式:


5、信息函数
函数名称 | 描述
----|------|----
CONNECTION_ID() | 连接ID
DATABASE() | 当前数据库
LAST_INSERT_ID() | 最后插入记录的ID
USER() | 当前用户
VERSION() | 版本信息
函数CONNECTION_ID()
函数CONNECTION_ID()可以返回MySQL服务器的连接数,也就是到目前为止MySQL服务的连接次数,每个连接都有各自唯一的ID:

函数DATABASE()
函数DATABASE()显示当前数据库:

函数LAST_INSERT_ID()
函数LAST_INSERT_ID()需要有类似“ID”的自动编号字段:

因此对数据表“name”加以改造:

添加一条新记录,此时“id”编号自增应为5,查询最后插入记录的ID,结果确实是5:

如果一次插入多条记录,那么只会查询到多条记录中第一条插入记录的ID:

函数USER()、VERSION()
函数USER()、VERSION()分别显示登录的用户名及MySQL版本信息:

6、聚合函数
函数名称 | 描述
----|------|----
AVG() | 平均值
COUNT() | 计数
MAX() | 最大值
MIN() | 最小值
SUM() | 求和
聚合函数都只有一个返回值,下列演示都使用数据表“tdb_goods”:
![]()
函数AVG()
求所有商品的平均价格:

还可以使用函数ROUND()对其进行四舍五入,并保留2为小数:

函数COUNT()
求商品的总数量:

函数MAX()
求最高的商品价格:

函数MIN()
求最低的商品价格:

函数SUM()
求所有商品的总价格:

7、加密函数
函数名称 | 描述
----|------|----
MD5() | 信息摘要算法
PASSWORD() | 密码算法
函数MD5()
函数MD5()为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护:

如果该数据库中的信息是用于日后的WEB应用,建议都使用MD5进行加密。
函数PASSWORD()
函数PASSWORD()更多的用于密码的计算:

例如修改MySQL用户的登录密码:

验证原密码能否登陆:

使用修改后的密码“root”进行登录:

8、运算符与函数汇总:
- 字符函数
函数名称 | 描述
----|------|----
CONCAT() | 字符连接
CONCAT_WS() | 使用指定的分隔符进行字符连接
FORMAT() | 数字格式化
LOWER() | 转换成小写字母
UPPER() | 转换成大写字母
LEFT() | 获取左侧字符
RIGHT() | 获取右侧字符
LENGTH() | 获取字符串长度
LTRIM() | 删除前导空格
RTRIM() | 删除后续空格
TRIM() | 删除前导和后续空格
SUBSTRING() | 字符串截取
[NOT] LIKE() | 模式匹配
REPLACE() | 字符串替换
- 数值运算符与函数
函数名称 | 描述
----|------|----
CEIL() | 进一取整
DIV | 整数除法
FLOOR() | 舍一取整
MOD | 取余数
POWER() | 幂运算
ROUND() | 四舍五入
TRUNCATE() | 数字截取
- 比较运算符与函数
函数名称 | 描述
----|------|----
[NOT] BETWEEN……AND…… | [不]在……范围之内
[NOT] IN() | [不]在列出值范围内
IS [NOT] NULL | [不]为空
- 日期时间函数
函数名称 | 描述
----|------|----
NOW() | 当前时间和日期
CURDATE() | 当前日期
CURTIME() | 当前时间
DATE_ADD() | 日期变化
DATEDIFF() | 日期差值
DATE_FORMAT() | 日期格式化
- 信息函数
函数名称 | 描述
----|------|----
CONNECTION_ID() | 连接ID
DATABASE() | 当前数据库
LAST_INSERT_ID() | 最后插入记录的ID
USER() | 当前用户
VERSION() | 版本信息
- 聚合函数
函数名称 | 描述
----|------|----
AVG() | 平均值
COUNT() | 计数
MAX() | 最大值
MIN() | 最小值
SUM() | 求和
- 加密函数
函数名称 | 描述
----|------|----
MD5() | 信息摘要算法
PASSWORD() | 密码算法
版权声明:欢迎转载,欢迎扩散,但转载时请标明作者以及原文出处,谢谢合作! ↓↓↓