MySQL 常用函数(上)
MySQL 提供了很多内置函数,通过这些内置函数,您可以在查询数据的同时对数据做一些相应的处理,无需再使用其它编程语言来处理。例如 MySQL 存储日期时间大多都会用 INT 类型的时间戳,直接查询出来是一串数字,还需要用 PHP 之类的语言来格式化。通过 MySQL 的内置函数您可以在查询的同时就对时间戳做格式化处理。
数学函数
数学函数可以用来处理各种数值类型的数据。
CEIL()
CEIL 的功能是对小数进行 向上取整。
用法如下:
SELECT CEIL(3.1)+-----------+
| CEIL(3.1) |
+-----------+
| 4 |
+-----------+3.1 的小数向上取整后就是 4。
我这里为了方便演示,数据表中没有的数据就不输出数据表了。
如果是在正常的数据查询中可以在括号内传入字段名称。
FLOOR()
FLOOR 的功能是对小数进行 向下取整。
用法如下:
SELECT FLOOR(3.1)+------------+
| FLOOR(3.1) |
+------------+
| 3 |
+------------+3.1 的小数向下取整就是 3,也就是直接去除小数。
POWER()
POWER 的功能是 幂运算。
下面计算 3 的 4 次方:
SELECT POWER(3, 4)+-------------+
| POWER(3, 4) |
+-------------+
| 81 |
+-------------+ROUND()
ROUND 的功能是 四舍五入。
下面对 9.9999 进行四舍五入,保留小数点后两位:
SELECT ROUND(9.9999, 2)+------------------+
| ROUND(9.9999, 2) |
+------------------+
| 10.00 |
+------------------+TRUNCATE()
TRUNCATE 的功能是 数字截取。TRUNCATE 和 ROUND 不一样的地方就是 TRUNCATE 只会截取数字,不会四舍五入。
下面对 9.9999 进行截取,保留小数点后两位:
SELECT TRUNCATE(9.9999, 2)+---------------------+
| TRUNCATE(9.9999, 2) |
+---------------------+
| 9.99 |
+---------------------+ABS()
ABS 的功能是 获取绝对值。
下面获取 -3 的绝对值:
SELECT ABS(-3)+---------+
| ABS(-3) |
+---------+
| 3 |
+---------+字符函数
字符函数可以用来处理各种字符串类型的数据。
CONCAT()
CONCAT 的功能是 字符串连接。
用法如下:
SELECT CONCAT('孙', '悟空')+----------------------+
| CONCAT('孙', '悟空') |
+----------------------+
| 孙悟空 |
+----------------------+一般很多国外的网站性和名都是分开存储的,在查询的时候就可以用 CONCAT 来连接。
下面是一张性和名分开存储的表格:
+------------+-----------+
| first_name | last_name |
+------------+-----------+
| 军 | 雷 |
| 永浩 | 罗 |
+------------+-----------+下面用 CONCAT 来连接名和性:
SELECT CONCAT(last_name, first_name) AS name FROM user2+--------+
| name |
+--------+
| 雷军 |
| 罗永浩 |
+--------+其中的 AS name 是给查询出来的数据取一个别名,所以查询出来的表头的字段就是 name。
CONCAT_WS()
CONCAT_WS 的功能是 使用分隔符来连接字符串。
用法如下:
SELECT CONCAT_WS('-', '中国', '北京')+--------------------------------+
| CONCAT_WS('-', '中国', '北京') |
+--------------------------------+
| 中国-北京 |
+--------------------------------+第 1 个参数是分隔符,后面的参数就是要连接的字段。
LOWER()
LOWER 的功能是把字符 转换为 小写。
SELECT LOWER('HTML')+---------------+
| LOWER('HTML') |
+---------------+
| html |
+---------------+UPPER()
UPPER 的功能是把字符串 转换为 大写。
SELECT UPPER('mit')+--------------+
| UPPER('mit') |
+--------------+
| MIT |
+--------------+LEFT()
LEFT 的功能是 从左侧开始截取字符。
下面截取 My Name is Mark 的前两个字符:
SELECT LEFT('My Name is Mark', 2)+----------------------------+
| LEFT('My Name is Mark', 2) |
+----------------------------+
| My |
+----------------------------+RIGHT()
和 LEFT 相反,从结尾开始截取字符。
SELECT RIGHT('My Name is Mark', 4)+-----------------------------+
| RIGHT('My Name is Mark', 4) |
+-----------------------------+
| Mark |
+-----------------------------+LENGTH()
LENGTH 的功能是 获取字符串长度
SELECT LENGTH('My Name is Mark')+---------------------------+
| LENGTH('My Name is Mark') |
+---------------------------+
| 15 |
+---------------------------+LTRIM()
LTRIM 的功能是 去除开头的空格。
SELECT LTRIM(' Apple')+------------------+
| LTRIM(' Apple') |
+------------------+
| Apple |
+------------------+RTRIM()
RTRIM 的功能是 去除结尾的空格。
因为用法和 LTRIM 差不多,这里就不演示了。
REPLACE()
REPLACE 的功能是 字符串替换。
下面把 Apple 中的 p 替换为 *:
SELECT REPLACE('Apple', 'p', '*')+----------------------------+
| REPLACE('Apple', 'p', '*') |
+----------------------------+
| A**le |
+----------------------------+SUBSTRING()
SUBSTRING 的功能是 截取字符,您可以手动指定截取字符的起始位置和需要截取的字符数量。
下面从 My Name is Mark 的第 9 位开始截取两个字符:
SELECT SUBSTRING('My Name is Mark', 9, 2)+------------------------------------+
| SUBSTRING('My Name is Mark', 9, 2) |
+------------------------------------+
| is |
+------------------------------------+相关文章:
版权声明:本文为原创文章,版权归 Changbin's Blog 所有,转载请联系博主获得授权。
本文地址:https://www.misterma.com/archives/813/
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。