【MYSQL】-函数

【MYSQL】-函数_第1张图片
作者:小树苗渴望变成参天大树
作者宣言:认真写好每一篇博客
作者gitee:gitee✨
作者专栏:C语言,数据结构初阶,Linux,C++ 动态规划算法
如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!

文章目录

  • 前言
  • 一、日期函数
  • 二、字符串函数
  • 三、数学函数
  • 四、其他函数
  • 五、总结


前言

前一篇我们讲解完毕了表的基本操作,我们在常用的是select,今天我们讲解的是mysql的一系列函数,在我们语言层面有许多自带函数让我们可以更好去使用,在sql中也有许多好用的函数让我们去使用,在上篇已经使用过了聚集函数,他的好处已经让我们感受到了,今天说的函数也特别方便。话不多说,我们开始进入正文。

一、日期函数

【MYSQL】-函数_第2张图片

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

  1. 获取日期:
    【MYSQL】-函数_第3张图片

  2. 获取时间:
    【MYSQL】-函数_第4张图片

  3. 获取日期时间:
    【MYSQL】-函数_第5张图片
    【MYSQL】-函数_第6张图片
    这两个函数的效果是一样的,但是本质不一样。

  4. 获取日期时间中的日期部分(函数可以嵌套使用)
    【MYSQL】-函数_第7张图片

  5. 在日期的基础上加日期或者时间
    在这里插入图片描述
    【MYSQL】-函数_第8张图片

  6. 在日期的基础上减日期或者时间
    在这里插入图片描述
    【MYSQL】-函数_第9张图片

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

  1. 求两个日期的差
    【MYSQL】-函数_第10张图片

总结
其他的不传参的函数都是字面意思,前三个函数和数据类型的日期类型相似。传参的函数看到data说明必须要传日期,但是也可以把时间带上。

案例1:
创建一张表,记录生日
【MYSQL】-函数_第11张图片
添加当前日期:

insert into tmp(birthday) values(current_date());

【MYSQL】-函数_第12张图片

案例2:
创建一个留言表
【MYSQL】-函数_第13张图片
插入数据
【MYSQL】-函数_第14张图片
显示所有留言信息,发布日期只显示日期,不用显示时间

select content,date(sendtime) from msg;

【MYSQL】-函数_第15张图片
请查询在2分钟内发布的帖子

------|-----------|-------------|------------------
初始时间 now() 初始时间+2min

select * from msg where date_add(sendtime, interval 2 minute) > now();

【MYSQL】-函数_第16张图片

二、字符串函数


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

  1. charset(str)
    【MYSQL】-函数_第17张图片

  2. instr(str,substring) 返回子串的起始位置
    【MYSQL】-函数_第18张图片

  3. ucase(str) 转成大写、lcase(str) 转成小写(不是字母的不做处理)
    【MYSQL】-函数_第19张图片

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

【MYSQL】-函数_第20张图片
5. strcmp(str1,str2) 比较两个字符串是否相等(相等为0,不想等为-1)
【MYSQL】-函数_第21张图片

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

  1. exam_result表
    【MYSQL】-函数_第22张图片

(1)concat
要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分”

select concat(name, '的语文是',chinese,'分,数学是',math,'分') as '分数' from exam_result;

【MYSQL】-函数_第23张图片
(2)length(str)
求exam_result表中学生姓名占用的字节数
【MYSQL】-函数_第24张图片

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

  1. emp表
    【MYSQL】-函数_第25张图片

(1)replace(str s_str,r_str) 在str中用r_str替换s_str

将EMP表中所有名字中有S的替换成’上海’

 select ename,replace(ename,'S','上海') from emp;

【MYSQL】-函数_第26张图片

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

select substring(ename,2,2),ename from emp;

【MYSQL】-函数_第27张图片

以首字母小写的方式显示所有员工的姓名
【MYSQL】-函数_第28张图片

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

三、数学函数

【MYSQL】-函数_第29张图片

  1. abs(num)绝对值
    【MYSQL】-函数_第30张图片
  2. bin(num) 十进制转换二进制
    【MYSQL】-函数_第31张图片

我们看到带有小数的数转二进制只取前面整数部分进行转换

  1. hex(num) 转换成十六进制
    【MYSQL】-函数_第32张图片
  2. conv(num,from_num,to_num) 进制转换(相对灵活)
    【MYSQL】-函数_第33张图片
  3. format(num,len),控制num的精度,格式化(小数也四舍五入)
    【MYSQL】-函数_第34张图片
  4. rand(),随机数,返回随机浮点数,范围[0.0,1.0)
    【MYSQL】-函数_第35张图片
  5. mod(num1,num2) 求模

【MYSQL】-函数_第36张图片
8. ceiling(num) 向上取整,floor(num)向下取整
【MYSQL】-函数_第37张图片
【MYSQL】-函数_第38张图片

四、其他函数

  1. user()查询当前用户
    【MYSQL】-函数_第39张图片
  2. database()显示当前正在使用的数据库
    【MYSQL】-函数_第40张图片
  3. ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值
    【MYSQL】-函数_第41张图片
  4. mds(str) 对一个字符串进行md5摘要,摘要后得到一个32位字符串
    password()函数,MySQL数据库使用该函数对用户加密

对于数据库,关于密码有关的字段,最好都要进行加密,防止别人盗取你的表数据知道了用户的密码就麻烦。
【MYSQL】-函数_第42张图片

md5是一种哈希算法生成一个固定长度的字符串插入到表中的,password()是sql自带的。

五、总结

我们这些函数在必要的时候是非常有用的,希望大家掌握

查找字符串中逗号出现的次数大家先不要看答案哦

select id, LENGTH(string) - LENGTH(replace(string, ',','')) cnt from strings;

你可能感兴趣的:(MYSQL,mysql,数据库)