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

初识MySQl · 内置函数

目录

前言:

日期类函数

字符串函数

数学类函数

其他函数


前言:

在前文的学习我们已经简单了解了部分函数,比如count()函数什么的,今天我们主要是笼统的学习一下MySQL中的函数,仅仅从使用的角度来学习,如果要深究下去可能需要学习到事务部分了,那么因为事务还没有学习,所以我们这里就只讲怎么使用了。

那么废话不多说,直接进入主题吧!


日期类函数

对于日期类函数我们罗列这么多,那么我们首先要对日期要有个清楚的认识,主要还是日期的基本格式:

xxxx-xx-xx xx:xx:xx

这是日期的基本格式。

我们围绕这个基本格式展开对日期函数的基本使用。

首先是current_*一类的,其实也就是返回的东西不一样而已,一个返回日期,一个返回时间,一个返回日期+时间。

接着就是date函数,对于这个函数来说传的参数就是日期的标准格式而已。

但是!

你会发现你在这个函数里面调用上面的current函数,结果都是一样的,这是因为对于current_time()函数来说MySQL发现它没有对应的date之后就会自动补齐当前的date了。

然后是date_sub和date_add和datediff函数了,这里面就会有个比较有意思的现象了。

我们使用一个date_sub就知道了:

对于这里interval后面的单位来说可以是year也可以是day也可以是minute

对于time和timestamp函数的使用都符合我们的预期,但是当我们使用date的时候:

不像使用current_time()函数的时候MySQL会自动补齐当前的时间,这里不会补齐,所以时间开始是从00:00:00开始的。

然后就是datediff函数了:

因为主要是计算天数的差值,所以对于时分秒的存在就不会太在意了。

在上面我们已经使用了now函数,它的作用和current_timestamp不能说一摸一样,只能说非常一样了。

以上就是日期类的基本使用。


字符串函数

charset(str);

concat(string 1, string 2, ...);

instr(string, substring);

ucase(string 2);

lcase(string 2);

left(string 2, length);

length(string);

replace(str,search_str,replace_str);

strcmp(str1, str2);

substring(str, pos, length);

ltrim(str) rtrim(str) trim(str);

以上是基本常用的字符串函数了。我们从开始逐一的往下走:

charset的作用是用来返回字符串的字符集的。如果里面的是某列的话,那么我们就需要from对应的表,然后里面的所有数据都会走一遍charset。

其实,这里的挺多函数和C语言的函数不能说一摸一样,只能说非常相似了。

接着是concat,这个函数的作用就是连接字符串嘛,那在C语言也有,C语言的函数叫做strcat和strncat,所以有了C语言的基础我们学习这个还是很快的:

连接之后可以重命名,所以如果我们想要在MySQL中要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”就可以通过concat来操作:

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

接着是instr,这个我们也在C++里面学习过了啦,像substr,就是在str中返回str的位置咯:

不过这里的位置就不是从0开始了,是从1开始的,因为如果找不到对应的起始位置返回的就是0.

接着是ucase和lcase,它们的作用也是非常简单的,将字符串中的字符转换为大写和小写:

接着是left和substring,它们的作用是一样的,都是从某个位置开始选择多少个字符。

left的作用是从左边选取length个字符。

都有left了,来个right不也非常合理:

substring是可以自选位置:

length的使用就,,,你看咯:

strcmp我门这里就不介绍了吧,咱们有了C语言的基础对这个来说实在是基础的不能再基础了。

然后是l r trim,作用就是去除前后空格,不过注意的是不能去除中间空格:

因为显示框本身的自适应,所以对于rtrim来说效果没有那么好。

replace的作用就是替换咯

以上就是replace的基本使用。


数学类函数

对于数学类函数常用的可以有以上的几种,我们还是逐一从上到下介绍:

abs是绝对值函数,bin是十进制转换为二进制,不过对于bin来说只停留在转换整数部分,对于小数部分还没有转换:

hex函数同理。

对于进制函数一共有bin hex conv三个函数,对于conv其实已经包含了bin和hex的功能:

还有向上和向下取整函数ceiling和floor函数:

对于rand函数,它生成的范围是0到1,所以我们要生成0到100到*100就可以了: 

对于mod函数,就是取余:

数学函数基本上就是数学运算咯,没啥亮点。


其他函数

user()函数,查询当前用户:

md5();用来加密使用:

这是它独特的加密方式。

当我们对它进行了查询之后,我们甚至不能上翻到这条select记录。

ifnull函数,就是C语言中三目操作符咯,ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值

以上是对MySQL中内置函数的基本介绍。 


感谢阅读!

相关文章:

  • OpenCV图像处理:边缘检测
  • YOLOv8 中的损失函数解析
  • 《 C语言实现:金字塔式星号图案打印》
  • Transformer革命:人工智能如何突破语言理解的边界
  • MCP 学习笔记(1)
  • 广告牌变“高空炸弹“?智能预警终端筑起安全防线!
  • [原创](Modern C++)现代C++的关键性概念: 如何利用多维数组的指针安全地遍历所有元素
  • 解读Linux中的fork机制
  • kafka 报错消息太大解决方案 Broker: Message size too large
  • Error:Flash Download failed
  • 应用UID分配
  • 构建大语言模型应用:句子转换器(Sentence Transformers)(第三部分)
  • 2025NCTF--Web
  • 智慧电力:点亮未来能源世界的钥匙
  • 《Linux运维实战:Ubuntu 22.04配置pam实现密码复杂度策略》
  • 【计算机网络】OSI七层模型完全指南:从比特流到应用交互的逐层拆解
  • Java基础关键_031_反射(一)
  • WebRTC C++开发入门
  • 2007-2019年各省地方财政教育支出数据
  • AI 对话艺术:Prompt 设计技巧与案例解析
  • 工程院院士、武汉纺织大学校长徐卫林拟任湖北省属本科高校党委书记
  • 重庆一男大学生掉进化粪池死亡,重庆对外经贸学院:以学校通报为准
  • 国家发改委谈整治“内卷式”竞争:加力破除地方保护和市场分割,遏制落后产能无序扩张
  • 《歌手2025》能否“爆”下去?
  • 王楚钦球拍检测环节受损,国际乒联发声明
  • 美国前总统拜登确诊前列腺癌