当前位置: 首页 > article >正文

【数据库】MySQL内置函数

 本篇分享一些在MySQL中常见的一些内置函数,如日期函数,字符串函数和数学函数,以方便于操作数据库中的数据。

1.日期函数

我们先整体观察一下这些函数再讲解案例

 日期函数使用起来都非常就简单

获得年月日:

select current_date();

这里就可以获得当前的日期

获得时分秒: 

select current_time();

获得了当前的时分秒。

获得时间戳:

时间戳就是当前的日期和时间

select current_timestamp();

和他用法同样的还有

select now();

 

获取设计的日期: 

 select date('2018-10-1 00:00:00');

可以看到我们date括号内设置了年月日还有时分秒

但是运行的结果只有年月日。

同样可以以嵌套的方式使用

在日期的基础上增加日期:

先获取一个时间

在使用函数增加时间

select date_add(now(),interval 40 day);

 

我们增加了40天,可以看到函数可以根据日历来推断增加的日期。

 在日期的基础上减去时间:

select date_sub(now(),interval 40 day);

还是刚刚的时间减去四十天

 计算两个日期之间相差多少天:

select datediff('2024-9-12','2024-6-15');

使用datediff函数

可以看到返回了一个数字,相差89天。

 使用案例1:

创建一张表,记录生日

create table tmp(
 id int primary key auto_increment,
 birthday date
);

添加当前日期:

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

可以看到表中就可以将当前的年月日添加进去了

使用案例2:

创建一个留言表,类似于刷视频或者文章时想评论的表。

创建表

reate table msg (
 id int primary key auto_increment,
 content varchar(30) not null,
 sendtime datetime
 );

再插入两条评论和当前时间

insert into msg (content,sendtime) values ( '醉里挑灯看剑',now());

insert into msg (content,sendtime) values ( '知来者之可追',now());

 这就是带有时间时间类型的表结构案例。

2.字符串函数

先浏览都有哪些字符串函数

获得编码格式:
 

select charset(string);

可以看到我们所用的编码格式时utf-8的编码格式

 

编辑的中文也同样如此。

连接字符串:

select concat(string1,string2,....);

它可以将括号内的内容转成字符串进行拼接。

返回一个字符串在另一个字符串中出现的位置: 

instr(string,substring)

 可以看到1234出现的位置在第五个位置上。

转换成大写:

ucase(string)

转换成小写:

lcase(string)

取指定长度字符 :

select left(string,lenth);

从string的左边起取length个字符

同样的使用right也是可以的

求字符串长度:

length(string);

返回的数字即为字符串的长度。

使用案例1:拼接

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

 我们用之前的成绩表举例

我们先将表整合一下

 再使用concat将筛选出来信息连接起来。

select concat('考生姓名:',name,'总分:',chinese+math+english,'语文成绩:',chinese,'数学成绩:',math,'英语成绩:',english) msg from exam_result;

 使用案例2:求字符长度

求学生表中学生姓名占用的字节数

select name,length(name) from exam_result;

这个案例的意义是因为在Mysql中每一个汉字每一个字符,比如唐三藏每一个字都有它们对应的一个大小,一个字符就占了三个字节的大小,因为他是utf-8编码的,所以三个汉字会显示九个字节,但是字母和数字只占一个字节。 

使用案例3:替换

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

以下是案例表

之后我们使用replace函数即可替换表中的内容

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

 使用案例4:截取

截取EMP表中ename字段的第二个到第三个字符

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

 使用案例5:以首字母小写的方式显示所有员工的姓名

先观察表中的内容,员工姓名都为大写

 再使用substring将员工姓名的首字母和后面的字母都截取出来

sselect enam,subting(ename,1,1),substring(ename,2) from emp;

 再按题目要求转换大小写

select enam,lcase(subting(ename,1,1)),substring(ename,2) from emp;

再将两个部分做拼接 

select enam,concat(lcase(subting(ename,1,1)),substring(ename,2)) from emp;

 

至此题目的要求完成。 

3. 数学函数

数学函数的使用都较为简单,以下为使用案例

求绝对值:

select abs(-12);

十进制转换为二进制

select bin(10);

 

十进制转化为十六进制

select hex(11);

 将一个数字转换为另一个进制

conv(number,from_base,to_base)

例如将数字10,从十进制转化为二进制

或者将数字10从十进制转化为五进制

取模,求余

mod(number,denominator)

负数求余也可以

生成随机数

rand()

 rand()函数生成的随机数的区间在[0.0,1.0)之间,

那如果我们需要生成一个0到99之间的随机数,只需要乘以99就可以了

以上既是一些MySQL中常用的一些函数,希望对你有所帮助,感谢你的阅读


http://www.kler.cn/news/307145.html

相关文章:

  • Args4j:Java命令行参数解析的利器
  • Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 死亡对象判断方法
  • uniapp自定义导航栏以及页面加背景
  • CSP-J算法基础 计数排序
  • mis_table.cs 与 csharp_mis_table.h
  • Oracle(121)如何进行数据文件的恢复?
  • Linux中使用Docker构建Nginx容器完整教程
  • k8s使用本地docker私服启动自制的flink集群
  • OKHttp实现原理分享
  • vue3 指定元素全屏 screenfull(可直接粘贴使用)
  • 《凡人歌》:网络安全组电话响3声必须接,安全组长被压迫患得惊恐症、抑郁症
  • HTTP跨域请求时为什么要发送options请求
  • 【LLMs对抗性提示:提示泄漏、非法行为、DAN、Waluigi效应、 游戏模拟器、防御策略————】
  • JSON教程
  • 聪明办法学 Python 第二版.1.学习安排
  • vue3项目实现全局国际化
  • 深入理解C++中的std::string::substr成员函数:子串操作的艺术
  • 增强LinkedList实现瑞士轮赛制编排
  • C++课程笔记 类和对象
  • Android JobScheduler介绍
  • 介绍一些免费 的 html 5模版网站 和配色 网站
  • Spring的核心思想
  • Linux常用命令以及操作技巧
  • 数据库之索引<保姆级文章>
  • 纯血鸿蒙NEXT常用的几个官方网站
  • 你天天用微服务还不知道心跳检测机制是什么?
  • Redis的配置与优化
  • spring模块(六)spring event事件(3)广播与异步问题
  • 鸿蒙OS 资源文件
  • 七、结合Landsat、夜光数据建成区提取——K均值聚类和监督分类提取精确的建成区边界