初识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中内置函数的基本介绍。 


感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/42787.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python每日一题(7)

Python每日一题 2025.3.27 一、题目二、分析三、自己源代码四、deepseek答案五、源代码与ai分析 一、题目 question["""编写程序,生成包含20个随机数的列表,然后将前十个元素升序排列,后10个元素降序排列,并输出结果""" ]二、分析 今天本来写了…

一些需要学习的C++库:CGAL和Eysshot

写在前面: 从开始工作到现在,去过多家公司,多个行业, 虽然大部分时间在通信业,但也有其它的行业的工作没有做完,但也很感兴趣。每次想要研究一下时,总是想不起来。 这里写一些信息,…

嵌入式linux系统中对应的文件锁详细实现方法

//文件锁:flock用于对文件加锁或者解锁但是只能产生建议性锁,并且同一个文件不会同时 具有共享锁和互斥锁。 第一:flock函数对应的要素 头文件: #include <sys/file.h> 函数原型:int flock(int fd,int operation) 参数: fd:表示需要加锁文件的文件描述符 operati…

WEB或移动端常用交互元素及组件 | Axure / 元件类型介绍(表单元件、菜单和表格 、流程元件、标记元件)

文章目录 引言I Axure / 元件类型介绍基本元件表单元件菜单和表格流程元件标记元件II Axure 基础Axure / 常用功能介绍Axure / 常用元素实例Axure / 动态交互实例Axure / 常用设计分辨率推荐III Axure / 创建自己的元件库元件库作用元件库的创建及使用引言 I Axure / 元件类型介…

如何排查C++程序的CPU占用过高的问题

文章目录 可能的原因程序设计的BUG系统资源问题恶意软件硬件问题 通常步骤一个简单的问题代码在windows平台上如何排查Windows Process ExplorerWinDBG 在Linux平台如何排查使用TOP GDBPerf 可能的原因 程序设计的BUG 有死循环低效算法与数据结构滥用自旋锁频繁的系统调用&a…

19726 星际旅行

19726 星际旅行 ⭐️难度&#xff1a;困难 &#x1f31f;考点&#xff1a;Dijkstra、省赛、最短路问题、期望、2024 &#x1f4d6; &#x1f4da; import java.util.*;public class Main {static int N 1005;static ArrayList<Integer>[] g new ArrayList[N]; // …

vue3 + ant-design-vue4实现Select既可以当输入框也可以实现下拉选择

近日工作中&#xff0c;遇到一个需求&#xff0c;就是select的有一个前置切换条件&#xff0c;有些条件需要时输入&#xff0c;有些条件需要时下拉选择&#xff0c;但是在切换的时候&#xff0c;后面的这个输入或者选择组件不能闪烁&#xff0c;于是也就只能采用select去实现&a…

Unity UGUI - 六大基础组件

目录 一、Canvas上 1. Canvas&#xff1a;复制渲染子UI控件 2. ✨Canvas Scaler✨&#xff1a;画布分辨率自适应 3. Graphics Raycaster&#xff1a;射线事件响应 4. ✨Rect Transform✨&#xff1a;UI位置锚点对齐 二、Event System上 5. Event System 6. Standalone …

VSCode中使用Markdown以及Mermaid实现流程图和甘特图等效果

前言 Markdown&#xff08;简称md&#xff09;这种文件格式&#xff0c;渐渐盛行起来。有点类似html格式的意思。特别是内嵌的对Marmaid的支持&#xff0c;对流程图、甘特图等的绘制&#xff0c;都非常的方便。 一、安装Markdown的插件 二、创建.md文件 新建一个Markdown文件&…

如何让 history 记录命令执行时间?Linux/macOS 终端时间戳设置指南

引言:你真的会用 history 吗? 有没有遇到过这样的情况:你想回顾某个重要命令的执行记录,却发现 history 只列出了命令序号和内容,根本没有时间戳?这在运维排查、故障分析、甚至审计时都会带来极大的不便。 想象一下,你在服务器上误删了某个文件,但不知道具体是几点执…

css—— object-fit 属性

一&#xff0c;属性值 object-fit: fill | contain | cover | none | scale-down;原本的图片&#xff1a; 属性值效果&#xff1a; <!DOCTYPE html> <html> <head><style>.container {display: flex;flex-wrap: wrap;gap: 20px;}.box {width: 200px…

端游熊猫脚本游戏精灵助手2025游戏办公脚本工具!游戏脚本软件免费使用

在当下这个崇尚高效与便捷的时代&#xff0c;自动化工具已然成为诸多开发者与企业提升工作效率的关键选择。熊猫精灵脚本助手作为一款极具实力的自动化工具&#xff0c;凭借其多样的功能以及广泛的应用场景&#xff0c;逐步成为众多用户的首要之选。 熊猫精灵脚本助手整合了丰…

Docker安装MySql 8.0

1、验证环境 docker -v使用上面的命令检查一下本机的docker的运行环境。执行完成之后&#xff0c;会输出docker的版本号 我本地输出以下内容: Docker version 27.5.1, build 9f9e4052、拉取镜像 docker pull mysql:8.0拉取mysql8.0版本对的镜像。正常情况如下: 如果报下面的…

Jmeter-负载测试

目录 一. 基础负载测试场景&#xff1a;固定并发用户数 1、线程组配置 2、HTTP请求配置 3、添加定时器 4、添加监听器 4.1 聚合报告 4.2 响应时间图 4.3 查看结果树 5、结果分析指标 二. 阶梯式加压场景&#xff08;逐步增加并发&#xff09; 1、插件安装 2、阶梯配…

【新手初学】读取数据库数据

利用注入点让SQL注入语句执行读取数据库数据相关的操作&#xff01; 以下均以pikachu靶场的字符型注入为例进行介绍说明 一、读取用户名&#xff0c;数据库版本信息 在原URL后面添加如下代码&#xff1a; union select user(),version(&#xff09;-- 效果&#xff1a; 补…

Ubuntu与Windows之间相互复制粘贴的方法

一、打开Ubuntu终端 二、卸载已有的工具 sudo apt-get autoremove open-vm-tools 三、安装工具 sudo apt-get install open-vm-tools-desktop 四、重启 直接输入reboot 注&#xff1a;有任何问题欢迎评论区交流讨论或者私信&#xff01;

免去繁琐的手动埋点,Gin 框架可观测性最佳实践

作者&#xff1a;牧思 背景 在云原生时代的今天&#xff0c;Golang 编程语言越来越成为开发者们的首选&#xff0c;而对于 Golang 开发者来说&#xff0c;最著名的 Golang Web 框架莫过于 Gin [ 1] 框架了&#xff0c;Gin 框架作为 Golang 编程语言官方的推荐框架 [ 2] &…

【QT】新建QT工程(详细步骤)

新建QT工程 1.方法(1)点击new project按钮&#xff0c;弹出对话框&#xff0c;新建即可&#xff0c;步骤如下&#xff1a;(2) 点击文件菜单&#xff0c;选择新建文件或者工程&#xff0c;后续步骤如上 2.QT工程文件介绍(1).pro文件 --》QT工程配置文件(2)main.cpp --》QT工程主…

优化MyBatis-Plus批量插入策略

优化MyBatis-Plus批量插入策略 优化MyBatis-Plus批量插入策略一、用Mybatis-plus中的saveBatch方法二、InsertBatchSomeColumn插件1.使用前配置2.代码示例1.配置类 MybatisPlusConfig2).实体类 User3).Mapper 接口 UserMapper4).测试类 InsertBatchTest 优化MyBatis-Plus批量插…

记一次系统单点登录、模拟web系统登录方式的开发过程,使用AES加密

1.系统原始登录方式 访问登录页 输入账号密码登录后 2.从登录页找进去&#xff0c;从代码层面查看系统登录逻辑 常规登录方式为前端ajax请求LoginService服务-->返回200则跳转到home系统首页 查看LoginService登录逻辑 后台获取ajax传递的信息-->比较验证码-->查询…