MySQL数据库中的函数怎样使用?

函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。 那么,函数到底在哪儿使用呢?

我们先来看两个场景:

MySQL数据库中的函数怎样使用?

1). 在企业的OA或其他的人力系统中,经常会提供的有这样一个功能,每一个员工登录上来之后都能够看到当前员工入职的天数。而在数据库中,存储的都是入职日期,如2000-11-12,那如果快速计算出天数呢?

2). 在做报表这类的业务需求中,我们要展示出学员的分数等级分布。而在数据库中,存储的是学生的分数值,如98/75,如何快速判定分数的等级呢?其实,上述的这一类的需求呢,我们通过MySQL中的函数都可以很方便的实现。

MySQL中的函数主要分为以下四类:字符串函数、数值函数、日期函数、流程函数。

字符串函数

MySQL中内置了很多字符串函数,常用的几个如下:

MySQL数据库中的函数怎样使用?

演示如下:

A. concat : 字符串拼接

select concat('Hello' , ' MySQL');

B. lower : 全部转小写

select lower('Hello');

C. upper : 全部转大写

select upper('Hello');

D. lpad : 左填充

select lpad('01', 5, '-');

E. rpad : 右填充

select rpad('01', 5, '-');

F. trim : 去除空格

select trim(' Hello MySQL ');

G. substring : 截取子字符串

select substring('Hello MySQL',1,5);

案例:

MySQL数据库中的函数怎样使用?

由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。比如: 1号员工的工号应该为00001。

update emp set workno = lpad(workno, 5, '0');

处理完毕后, 具体的数据为:

MySQL数据库中的函数怎样使用?

数值函数

常见的数值函数如下:

MySQL数据库中的函数怎样使用?

演示如下:

A. ceil:向上取整

select ceil(1.1);

B. floor:向下取整

select floor(1.9);

C. mod:取模

select mod(7,4); 1

D. rand:获取随机数

select rand();

E. round:四舍五入

select round(2.344,2);

案例:

通过数据库的函数,生成一个六位数的随机验证码。

思路: 获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基础上乘以1000000,然后舍弃小数部分,如果长度不足6位,补0。

select lpad(round(rand()*1000000 , 0), 6, '0');

日期函数

常见的日期函数如下:

MySQL数据库中的函数怎样使用?

演示如下:

A. curdate:当前日期

select curdate();

B. curtime:当前时间

select curtime();

C. now:当前日期和时间

select now();

D. YEAR , MONTH , DAY:当前年、月、日

select YEAR(now()); select MONTH(now()); select DAY(now());

E. date_add:增加指定的时间间隔

select date_add(now(), INTERVAL 70 YEAR );

F. datediff:获取两个日期相差的天数

select datediff('2021-10-01', '2021-12-01');

案例:

查询所有员工的入职天数,并根据入职天数倒序排序。入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。

select name, datediff(curdate(), entrydate) as 'entrydays' from emp order by entrydays desc;

流程函数

流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。

MySQL数据库中的函数怎样使用?

演示如下:

A. if

select if(false, 'Ok', 'Error');

B. ifnull

select ifnull('Ok','Default'); select ifnull('','Default'); select ifnull(null,'Default');

C. case when then else end

需求: 查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

select  name,  ( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else'二线城市' end ) as '工作地址'from emp;

案例:

create table score(id int comment 'ID',name varchar(20) comment '姓名',math int comment '数学',english int comment '英语',chinese int comment '语文') comment '学员成绩表';insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);

具体的SQL语句如下:

selectid,name,(case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end )'数学',(case when english >= 85 then '优秀' when english >=60 then '及格' else '不及格'end ) '英语',(case when chinese >= 85 then '优秀' when chinese >=60 then '及格' else '不及格'end ) '语文'from score;

MySQL的常见函数我们学习完了,那接下来,我们就来分析一下,在前面讲到的两个函数的案例场景,思考一下需要用到什么样的函数来实现?

1). 数据库中,存储的是入职日期,如 2000-01-01,如何快速计算出入职天数呢? -------->

答案: datediff

2). 数据库中,存储的是学生的分数值,如98、75,如何快速判定分数的等级呢? ---------->

答案: case ... when ...

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/264253.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
黑马程序员黑马程序员订阅用户
上一篇 2023年5月22日 08:30
下一篇 2023年5月23日 07:26

相关推荐

  • 构造训练样本和设计损失函数

    在进行模型训练时,我们需要构造训练样本和设计损失函数,才能利用梯度下降对网络进行训练。训练样本的构建将一幅图片输入到yolo模型中,对应的输出是一个7x7x30张量,构建标签label时对于原图像中的每一个网格grid…

    2023年5月8日 编程分享
    05
  • PHP函数的封装性

    使用一个表单,输入任意数字,使之可以在2,8,16进制到10进制或10进制到2,8,16进制之间转换,形式大致如下如下: 原始代码实现 Document 数: 十进制转二进制 二进制转十进制

    2018年4月5日 PHP自学教程
    0207
  • PHP函数的DI框架。

    随着互联网技术的不断发展,各种编程语言和框架层出不穷。其中,PHP作为一种广泛应用于Web开发的编程语言,已经成为了建立Web应用程序的热门选择之一。同时,由于许多Web应用程序都需要复杂的逻辑控制,因此使用依…

    2023年5月23日
    02
  • PHP8中的函数:array_is_list(),让你轻松判断数组是否为列表。

    PHP8作为一种广泛使用的编程语言,近日经历了一次重要的版本升级。PHP8.0版本为PHP语言带来了一系列新的特性和功能,其中一个备受关注的新特性就是array_is_list()函数。该函数能让程序员轻松判断数组是否为列表。…

    2023年5月21日
    02
  • PHP构造方法(函数)

    一个需求,引出构造函数 什么是构造函数呢?在回答这个问题之前,我们来看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在我要求,在创建人类的对象时,就指…

    2018年4月11日
    0370
  • 构造函数的细节和注意事项

    构造函数的细节和注意事项 构造函数没有返回值,即没有return, 就算写了也没有用处 在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化 构造函数的作用是完成对成员属性的初始化任务,而…

    2018年4月11日
    0267
  • excel怎么设置时间相减

    不扫人问excel时间加减函数怎么用,其实更多人主要想了解时间之差怎么计算,那么本文就通过两套实例演示年月日和小时分钟的时间差计算。 datedif函数是excel的隐藏函数,主要用于计算日期之差,不是四舍五入,是向…

    2017年11月17日 精品软件
    0411
  • php的默认构造函数

    如果在类中,没有定义构造函数,那么会有一个默认的构造函数,形式如下, 举例说明 如何将一个对象的属性输出并显示 说明: 通过上面的案例,我们讲解了两个重要的点 如果显示成员属性的值 深刻理解了$this 的指向当…

    2018年4月11日
    0435

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息