【数据库】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.mzph.cn/news/879726.shtml

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

相关文章

为解决bypy大文件上传报错—获取百度云文件直链并使用Aria2上传文件至服务器

问题描述 一方面组内的服务器的带宽比较小,另一方面使用bypy方式进行大文件(大于15G)上传时会报错(虽然有时可以成功上传,但是不稳定): 解决方式 总体思路: 获得云盘需要下载文件的直链复制直链到服务器中使用自带…

24年蓝桥杯及攻防世界赛题-MISC-3

21 reverseMe 复制图片,在线ocr识别,https://ocr.wdku.net/,都不费眼睛。 22 misc_pic_again ┌──(holyeyes㉿kali2023)-[~/Misc/tool-misc/zsteg] └─$ zsteg misc_pic_again.png imagedata … text: “$$KaTeX parse error: Undefined…

Excel快速填充颜色,快捷键真香

大家好,这里是效率办公指南! 🎨 在Excel中工作时,我们经常需要对单元格进行颜色填充,以突出显示重要数据或增加视觉可读性。今天,我们将分享几种快速填充颜色的方法,帮助你提高工作效率&#x…

Golang使用ReverseProxy实现反向代理

目录 1.源码结构体 2.官方单机示例 3.使用示例 4.简单的http服务(用于测试) 1.源码结构体 type ReverseProxy struct {// Rewrite 必须是一个函数,用于将请求修改为要使用 Transport 发送的新请求。然后,其响应将原封不动地…

用ASR PRO离线语音芯片和月饼盒做一个会跑会跳会说话的机器狗

中秋节刚过,大家月饼盒应该还有,不要扔,可以做点小玩意。 机器狗的创意来自B站石桥北的视频,他使用了一块ESP32芯片和打印件加四个舵机实现,应该说是比较复杂的,需要有3D打印机打印外壳,还得会…

Linux标准IO-系统调用详解

1.1 系统调用 系统调用(system call)其实是 Linux 内核提供给应用层的应用编程接口(API),是 Linux 应用层进入内核的入口。不止 Linux 系统,所有的操作系统都会向应用层提供系统调用,应用程序通…

【Harmony】轮播图特效,持续更新中。。。。

效果预览 swiper官网例子 Swiper 高度可变化 两边等长露出,跟随手指滑动 Swiper 指示器导航点位于 Swiper 下方 一、官网 例子 参考代码: // xxx.ets class MyDataSource implements IDataSource {private list: number[] []constructor(list: nu…

软考高级:嵌入式系统调度算法 AI 解读

嵌入式系统中的调度算法用于管理任务的执行顺序,确保系统资源能够有效分配。以下是几种常见的调度算法的通俗讲解。 生活化例子 想象你是一位超市收银员,有很多顾客排队,每位顾客都可以看作一个任务,收银台就是你的处理器。你需…

PostgreSQL技术内幕10:PostgreSQL事务原理解析-日志模块介绍

文章目录 0.简介1.PG日志介绍2.事务日志介绍3.WAL分析3.1 WAL概述3.2 WAL设计考虑3.2.1 存储格式3.2.2 实现方式3.2.3 数据完整性校验3.3 check ponit 4.事务提交日志(CLOG)4.1 clog存储使用介绍4.2 slru缓冲池并发控制 0.简介 本文将延续上一篇文章内容…

【无标题】Java_Se 数据变量与运算符

标识符、变量、常量、数据类型、运算符、基本数据类型的类型转换等。这些是编程中的“砖块”,是编程的基础。要想开始正式编程,还需要再学“控制语句”,控制语句就像“水泥”,可以把“砖块”粘到一起,最终形成“一座大…

华为OD机试 - 二维伞的雨滴效应(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

ClickHouse-Kafka Engine 正确的使用方式

Kafka 是大数据领域非常流行的一款分布式消息中间件,是实时计算中必不可少的一环,同时一款 OLAP 系统能否对接 Kafka 也算是考量是否具备流批一体的衡量指标之一。ClickHouse 的 Kafka 表引擎能够直接与 Kafka 系统对接,进而订阅 Kafka 中的 …

镀金引线---

一、沉金和镀金 沉金和镀金都是常见的PCB金手指处理方式,它们各有优劣势,选择哪种方式取决于具体的应用需求和预算。 沉金(ENIG)是一种常用的金手指处理方式,它通过在金手指表面沉积一层金层来提高接触性能和耐腐蚀性…

【C++】模拟实现vector

在上篇中我们已经了解过的vector各种接口的功能使用,接下来我们就试着模拟实现一下吧! 注意:我们在此实现的和C标准库中实现的有所不同,其目的主要是帮助大家大概理解底层原理。 我们模拟vector容器的大致框架是: t…

2024年【四川省安全员B证】新版试题及四川省安全员B证考试试卷

题库来源:安全生产模拟考试一点通公众号小程序 四川省安全员B证新版试题参考答案及四川省安全员B证考试试题解析是安全生产模拟考试一点通题库老师及四川省安全员B证操作证已考过的学员汇总,相对有效帮助四川省安全员B证考试试卷学员顺利通过考试。 1、…

【webpack4系列】webpack基础用法(二)

文章目录 entryoutputloaderpluginmode前端构建基础配置关联HTML插件html-webpack-plugin构建 CSS 解析 ES6和React JSX解析 ES6解析 React JSX 解析CSS、Less和Sass解析CSS解析Less解析sass 解析图片和字体资源解析:解析图片资源解析:解析字体资源解析&…

JS - 获取剪切板内容 Clipboard API

目录 1,需求最终效果 2,实现示例 3,注意点1,只支持安全上下文环境2,只能读取当前页面的剪切板3,权限获取问题4,获取内容的 MIME_TYPE 问题1,文本内容2,图片内容 5&#x…

魅思-视频管理系统 getOrderStatus SQL注入漏洞复现

0x01 产品简介 魅思-视频管理系统是一款集成了视频管理、用户管理、手机端应用封装等功能的综合性视频管理系统。该系统不仅以其强大的视频管理功能、灵活的用户管理机制、便捷的手机端应用封装功能以及高安全性和现代化的界面设计,成为了市场上备受关注的视频管理系统之一。…

一个基于 laravel 和 amis 开发的后台框架, 友好的组件使用体验,可轻松实现复杂页面(附源码)

前言 随着互联网应用的发展,后台管理系统的复杂度不断增加,对于开发者而言,既要系统的功能完备,又要追求开发效率的提升。然而,传统的开发方式往往会导致大量的重复劳动,尤其是在构建复杂的管理页面时。有…

Web植物管理系统-下位机部分

本节主要展示上位机部分,采用BSP编程,不附带BSP中各个头文件的说明,仅仅是对main逻辑进行解释 main.c 上下位机通信 通过串口通信,有两位数据验证头(verify数组中保存对应的数据头 0xAA55) 通信格式 上位发送11字节…