mysql基础(43)_函数之系统函数

函数

在mysql中,函数分为两类,系统函数(内置函数)和自定义函数,不管是内置函数还是用户自定义函数,都是使用select函数名(参数列表);

系统函数(内置函数)

字符串函数

Char_length():判断字符串的字符数
length():判断字符串的字节数(与字符集)
Concat():连接字符串
Instr():判断字符在目标字符串中是否存在,存在返回其位置,不存在返回0
Lcase():全部小写
Left():从左侧开始截取,直到指定位置(位置如果超过长度,截取所有)字符串
Ltrim():消除左边对应的空格
Mid():从中间指定位置开始截取,如果不指定截取长度,直接到最后

mysql> select char_length('你好中国'),length('你好中国');
+-------------------------+--------------------+
| char_length('你好中国') | length('你好中国') |
+-------------------------+--------------------+
|                       4 |                  8 |
+-------------------------+--------------------+
1 row in set (0.11 sec)

-- 判断国字是否存在,返回4代表存在并且在第四个字符上
mysql> select concat('你好','中国'),instr('你好中国','国');
+-----------------------+------------------------+
| concat('你好','中国') | instr('你好中国','国') |
+-----------------------+------------------------+
| 你好中国              |                      4 |
+-----------------------+------------------------+
1 row in set (1.58 sec)

-- left函数是从左边开始截取所需数目的字符
mysql> select lcase('ABCD'),left('你好中国',4);
+---------------+--------------------+
| lcase('ABCD') | left('你好中国',4) |
+---------------+--------------------+
| abcd          | 你好中国           |
+---------------+--------------------+
1 row in set (0.00 sec)

mysql> select lcase('ABCD'),left('你好中国',2);
+---------------+--------------------+
| lcase('ABCD') | left('你好中国',2) |
+---------------+--------------------+
| abcd          | 你好               |
+---------------+--------------------+
1 row in set (0.00 sec)

-- mid函数是指从第几个字符开始截取字符(用户指定数目)
mysql> select ltrim(' ab cd'),mid('你好中国',3);
+-----------------+-------------------+
| ltrim(' ab cd') | mid('你好中国',3) |
+-----------------+-------------------+
| ab cd           | 中国              |
+-----------------+-------------------+
1 row in set (0.00 sec)

mysql> select ltrim(' ab cd'),mid('你好中国',1);
+-----------------+-------------------+
| ltrim(' ab cd') | mid('你好中国',1) |
+-----------------+-------------------+
| ab cd           | 你好中国          |
+-----------------+-------------------+
1 row in set (0.00 sec)

时间函数

Now():返回当前时间,日期 时间
Curdate():返回当前日期
Curtime():返回当前时间
Datediff():判断两个日期之间的天数差距,参数日期必须使用字符串格式(用引号包裹)
Date_add(日期,interval 时间数字 type):进行时间的增加
    type:year/day/hour/minute/second
Unix_timestamp():获取时间戳
From_unixtime():将指定时间戳转换成对应的日期时间格式

mysql> select now(),curdate(),curtime();
+---------------------+------------+-----------+
| now()               | curdate()  | curtime() |
+---------------------+------------+-----------+
| 2021-05-17 16:01:14 | 2021-05-17 | 16:01:14  |
+---------------------+------------+-----------+
1 row in set (1.53 sec)

mysql> select datediff('2020.5.6','2020.5.15');
+----------------------------------+
| datediff('2020.5.6','2020.5.15') |
+----------------------------------+
|                               -9 |
+----------------------------------+
1 row in set (1.04 sec)

mysql> select date_add('2021-5-1',interval 10 day),date_add('2021-5-1',interval 10 year),date_add('2021-5-1',interval 10 second);
+--------------------------------------+---------------------------------------+-----------------------------------------+
| date_add('2021-5-1',interval 10 day) | date_add('2021-5-1',interval 10 year) | date_add('2021-5-1',interval 10 second) |
+--------------------------------------+---------------------------------------+-----------------------------------------+
| 2021-05-11                           | 2031-05-01                            | 2021-05-01 00:00:10                     |
+--------------------------------------+---------------------------------------+-----------------------------------------+
1 row in set (0.00 sec)

mysql> select unix_timestamp();
+------------------+
| unix_timestamp() |
+------------------+
|       1621239690 |
+------------------+
1 row in set (1.56 sec)

mysql> select from_unixtime(1532223221);
+---------------------------+
| from_unixtime(1532223221) |
+---------------------------+
| 2018-07-22 09:33:41       |
+---------------------------+
1 row in set (0.00 sec)

数学函数

Abs():绝对值
Ceiling():向上取整
Floor():向下取整
Pow():求指数,谁的多少次方
Rand():获取一个随机数(0-1之间)
Round():四舍五入函数

mysql> select abs(-6),ceiling(1.6),floor(1.6),pow(2,3),rand(),round(1.6);
+---------+--------------+------------+----------+---------------------+------------+
| abs(-6) | ceiling(1.6) | floor(1.6) | pow(2,3) | rand()              | round(1.6) |
+---------+--------------+------------+----------+---------------------+------------+
|       6 |            2 |          1 |        8 | 0.06805288611729898 |          2 |
+---------+--------------+------------+----------+---------------------+------------+
1 row in set (1.69 sec)

mysql> select abs(-6),ceiling(1.6),floor(1.6),pow(2,3),rand(),round(1.6);
+---------+--------------+------------+----------+--------------------+------------+
| abs(-6) | ceiling(1.6) | floor(1.6) | pow(2,3) | rand()             | round(1.6) |
+---------+--------------+------------+----------+--------------------+------------+
|       6 |            2 |          1 |        8 | 0.9546634852463971 |          2 |
+---------+--------------+------------+----------+--------------------+------------+
1 row in set (0.00 sec)

其他函数

md5():对数据进行md5加密(mysql中的md5与其他任何地方的md5加密出来的内容是完全相同的)
Version():获取版本号
Datebase():显示当前所在数据库
UUID():生成一个唯一标识符(自增长),自增长是单表唯一,UUID是整库(数据唯一同时空间唯一)

mysql> select md5('aa'),version(),database(),uuid();
+----------------------------------+-----------+------------+--------------------------------------+
| md5('aa')                        | version() | database() | uuid()                               |
+----------------------------------+-----------+------------+--------------------------------------+
| 4124bc0a9335c27f086f24ba207a4912 | 5.5.53    | NULL       | bedcbcd5-b6ea-11eb-91dc-9c7bef19576d |
+----------------------------------+-----------+------------+--------------------------------------+
1 row in set (1.59 sec)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值