【MYSQL】-函数
💖作者:小树苗渴望变成参天大树🎈
🎉作者宣言:认真写好每一篇博客💤
🎊作者gitee:gitee?
💞作者专栏:C语言,数据结构初阶,Linux,C++ 动态规划算法🎄
如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!
前言
前一篇我们讲解完毕了表的基本操作,我们在常用的是select,今天我们讲解的是mysql的一系列函数,在我们语言层面有许多自带函数让我们可以更好去使用,在sql中也有许多好用的函数让我们去使用,在上篇已经使用过了聚集函数,他的好处已经让我们感受到了,今天说的函数也特别方便。话不多说,我们开始进入正文。
一、日期函数

后面的我们提到的日期就是年月日,时间就是时分秒。
-
获取日期:

-
获取时间:

-
获取日期时间:


这两个函数的效果是一样的,但是本质不一样。 -
获取日期时间中的日期部分(函数可以嵌套使用)

-
在日期的基础上加日期或者时间


-
在日期的基础上减日期或者时间


date_add和date_sub函数的第一个参数可以不用是完整的日期和时间,单纯的日期也是可以的。
- 求两个日期的差

总结
其他的不传参的函数都是字面意思,前三个函数和数据类型的日期类型相似。传参的函数看到data说明必须要传日期,但是也可以把时间带上。
案例1:
创建一张表,记录生日

添加当前日期:
insert into tmp(birthday) values(current_date());

案例2:
创建一个留言表

插入数据

显示所有留言信息,发布日期只显示日期,不用显示时间
select content,date(sendtime) from msg;

请查询在2分钟内发布的帖子
------|-----------|-------------|------------------
初始时间 now() 初始时间+2min
select * from msg where date_add(sendtime, interval 2 minute) > now();

二、字符串函数

有几个函数非常简单,就不使用表中的数据給大家演示了。
-
charset(str)

-
instr(str,substring) 返回子串的起始位置

-
ucase(str) 转成大写、lcase(str) 转成小写(不是字母的不做处理)

-
left(str,len) 从str中左边l取len个字符、right(str,len) 从str中右边l取en个字符

5. strcmp(str1,str2) 比较两个字符串是否相等(相等为0,不想等为-1)

接下来的函数操作通过表中的数据給大家演示
- exam_result表

(1)concat
要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分”
select concat(name, '的语文是',chinese,'分,数学是',math,'分') as '分数' from exam_result;

(2)length(str)
求exam_result表中学生姓名占用的字节数

注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;
如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数
(与字符集编码有关)
- emp表

(1)replace(str s_str,r_str) 在str中用r_str替换s_str
将EMP表中所有名字中有S的替换成’上海’
select ename,replace(ename,'S','上海') from emp;

(2)substring(str,pos,len)从str的pos位置,取len个字符
截取EMP表中ename字段的第二个到第三个字符
select substring(ename,2,2),ename from emp;

以首字母小写的方式显示所有员工的姓名

substring第三个参数不写默认取到结尾
三、数学函数

- abs(num)绝对值

- bin(num) 十进制转换二进制

我们看到带有小数的数转二进制只取前面整数部分进行转换
- hex(num) 转换成十六进制

- conv(num,from_num,to_num) 进制转换(相对灵活)

- format(num,len),控制num的精度,格式化(小数也四舍五入)

- rand(),随机数,返回随机浮点数,范围[0.0,1.0)

- mod(num1,num2) 求模

8. ceiling(num) 向上取整,floor(num)向下取整


四、其他函数
- user()查询当前用户

- database()显示当前正在使用的数据库

- ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值

- mds(str) 对一个字符串进行md5摘要,摘要后得到一个32位字符串
password()函数,MySQL数据库使用该函数对用户加密
对于数据库,关于密码有关的字段,最好都要进行加密,防止别人盗取你的表数据知道了用户的密码就麻烦。

md5是一种哈希算法生成一个固定长度的字符串插入到表中的,password()是sql自带的。
五、总结
我们这些函数在必要的时候是非常有用的,希望大家掌握
查找字符串中逗号出现的次数大家先不要看答案哦
select id, LENGTH(string) - LENGTH(replace(string, ',','')) cnt from strings;
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
