【MySQL】 MySQL的内置函数——日期函数、字符串函数、数学函数、聚合函数、其他函数

文章目录

  • MySQL
    • 1. 日期函数
      • 1.1 查看时间
      • 1.2 对时间进行计算
    • 2. 字符串函数
      • 2.1 字符串查找
      • 2.2 字符串修改显示
    • 3. 数学函数
    • 4. 聚合函数
    • 5. 其他函数

MySQL

在这里插入图片描述

  

1. 日期函数

  在MySQL中,提供了多种时间函数供我们使用,其中包括用于查看时间的函数和计算日期的函数。以下是一些常用的MySQL时间函数及其描述:

函数名称描述
current date()当前日期
current time()当前时间
current timestamp()当前时间戳
date(datetime)返回datetime参数的日期部分
date add(date, interval d value type)在date中添加日期或时间,interval后的数值单位可以是:year minute secondday
date sub(date, interval d value type)在date中减去日期或时间,interval后的数值单位可以是:year minute second day
datediff(datel, date2)两个日期的差,单位是天
now()当前日期时间

  

1.1 查看时间

获取当前的年月日:

select current_date();

在这里插入图片描述
  

获取当前的时分秒:

select current_time();

在这里插入图片描述

  
获取当前的时间戳:

  这里的时间戳相当于是年月日加上时分秒。

select current_timestamp();

  

  

1.2 对时间进行计算

在日期的基础上加日期:

  DATE_ADD() 是 MySQL 中的一个函数,用于在日期上添加指定的时间间隔。它的语法如下:

DATE_ADD(date, INTERVAL expr unit);

  date 是要操作的日期值。

  expr 是希望添加的时间间隔数值。

  unit 是时间间隔的单位,例如 DAY、MONTH、YEAR 等。

  

select date_add('2024-3-17',interval 10 day);

在这里插入图片描述

  

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

  DATE_SUB() 是 MySQL 中的一个函数,用于从日期时间值中减去指定的时间间隔。它允许你根据需求在日期或日期时间字段中减去年、月、日、小时、分钟或秒钟等时间单位。以下是 DATE_SUB() 函数的基本语法:

DATE_SUB(date, INTERVAL expr unit);

  date 是要进行调整的日期或日期时间表达式。

  expr 是一个表示时间间隔大小的表达式,可以是一个整数或者一个与 date 类型相同的表达式。

  unit 是时间单位,如 YEAR、MONTH、DAY、HOUR、MINUTE、SECOND 等。

  

select date_sub('2024-3-17',interval 10 day);

在这里插入图片描述

  

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

  DATEDIFF 用于计算两个日期之间的差异。以下是 DATEDIFF 函数的介绍:

DATEDIFF(end_date, start_date);

  end_date:表示要计算的时间段的结束日期。

  start_date:表示要计算的时间段的开始日期。

  

select datediff('2024-3-17','2023-3-17');

在这里插入图片描述

  

例子:创建一张留言表,用于记录用户发送信息的时间:

  我们使用 id 作为主键同时进行自增长,设置内容不为空,同时包含一个 datetime 类型的变量 sendtime 。

mysql> create table msg(
    -> id int primary key auto_increment,
    -> content varchar(30) not null,
    -> sendtime datetime
    -> );

在这里插入图片描述
  

打印表结构:

desc msg;

在这里插入图片描述

  

插入数据并且打印所有信息:

mysql> insert into msg(content,sendtime) values('hello',now());

mysql> insert into msg(content,sendtime) values('你好',now());

mysql> insert into msg(content,sendtime) values('你也好',now());

在这里插入图片描述
  

select * from msg;

s

  

打印所有留言信息,只显示日期,不显示时间:

select content ,date(sendtime) from msg;

在这里插入图片描述
  

打印所有留言信息,只显示时间,不显示日期:

select content ,time(sendtime) from msg;

在这里插入图片描述
  

只打印两分钟之内发布的信息:

select * from msg where date_add(sendtime,interval 2 minute)>now();

在这里插入图片描述
            

2. 字符串函数

  MySQL 提供了许多字符串函数,用于在查询中处理和操作字符串数据。以下是一些常用的 MySQL 字符串函数及其描述:

函数名称描述
charset(str)返回字符串字符集
concat(string2[,…])连接字符串
instr(string,substring)返回substring在string中出现的位置,没有返回0
ucase(string2)转换成大写
lcase(string2)转换成小写
left(string2,length)从string2中的左边起取length个字符
length(string)string的长度
replace(str,search str,replace str)在str中用replace_str替换search str
strcmp(stringl, string2)逐字符比较两字符串大小
substring(str,position length])从str的postion开始,取length个字符
ltrim(string) rtrim(string)trim(string)去除前空格或后空格

  

2.1 字符串查找

创建一张表其中包括学生的 id 、姓名和语文数学成绩:

mysql> create table emp(
    -> id int primary key auto_increment,
    -> chinese int comment '语文成绩',
    -> math int comment '数学成绩',
    -> name varchar(20)
    -> );

在这里插入图片描述

  

插入学生的信息并且打印查看:

mysql> insert into emp(chinese,math,name) values(90,70,'张三');

mysql> insert into emp(chinese,math,name) values(87,70,'李四');

mysql> insert into emp(chinese,math,name) values(85,80,'王五');

mysql> select * from emp;

在这里插入图片描述
  

获取emp表的name列的字符集:

select charset(name) from emp;

在这里插入图片描述

  

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

  CONCAT函数用于连接两个或多个字符串值,并返回连接后的字符串。这个函数非常有用,特别是当我们需要将多个字段或值组合成一个字符串时。

CONCAT(str1, str2, ..., strN)

  str1, str2, …, strN:这是要连接的字符串。它们可以是字符串值、列名、其他CONCAT函数,或者返回字符串值的表达式。

  CONCAT函数返回一个字符串,该字符串是输入字符串参数的连接。

  

select concat(name,'的语文成绩为',chinese,'分,数学成绩为',math,'分') 
as '分数' from emp;

在这里插入图片描述

  

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

  因为这里的字符集编码为utf8,utf8中一个汉字占三个字节的大小, 在文段中,name都是两个文字,所以输出的都是6。

select length(name) ,name from emp;

在这里插入图片描述

  

2.2 字符串修改显示

将emp表中所有名字中有 三 的替换成 山:

select replace(name,'三','山'),name from emp;

在这里插入图片描述

  

截取emp表中name字段的第二个到第三个字符:

  SUBSTRING 函数用于从一个字符串中提取子字符串。

SUBSTRING(str, pos, len)

  str:需要提取子字符串的原始字符串。

  pos:开始提取的位置(基于1的索引)。

  len:可选参数,表示要提取的字符数。如果省略,将返回从pos开始到字符串末尾的所有字符。

  另一种形式:

SUBSTRING(str FROM pos FOR len)

  FROM pos:指定开始提取的位置。

  FOR len:指定要提取的字符数。

  

select substring(name,1,1),name from emp;

在这里插入图片描述

  

  以上对字符串的修改都不会影响到原来的字段信息,只是改变了显示的字符串,若想要更改字段中的字符串,请进行CURD操作。

在这里插入图片描述

  

以首字母小写的方式显示所有学生的姓名:

  LCASE(或LOWER)函数用于将字符串转换为小写。这个函数在处理大小写不敏感的查询或格式化输出时非常有用。

LCASE(str)

  或:

LOWER(str)

  其中 str 是要转换为小写的字符串

  

select concat(lcase(substring(name,1,1)),substring(name,2)) from emp;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

            

3. 数学函数

  MySQL 提供了丰富的数学函数,用于在查询中执行各种数学运算。以下是一些常用的 MySQL 数学函数及其描述:

函数名称描述
abs (number)绝对值函数
bin(decimal number)十进制转换二进制
hex(decimalNumber)转换成十六进制
conv(number,from base,to base)进制转换
ceiling(number)向上去整
floor (number)向下去整
format (number,decimal places)格式化,保留小数位数
hex(decimalNumber)转换成十六进制
rand()返回随机浮点数,范围[0.0,1.0)
mod(number,denominator)取模,求余

  

绝对值:

select abs(-32.4);

在这里插入图片描述

  

向上取整:

select ceiling(54.3);

在这里插入图片描述

  

向下取整:

select floor(54.3);

在这里插入图片描述

  

保留2位小数位数(小数四舍五入):

select format(12.34567,3);

在这里插入图片描述

  

产生随机数:

select rand();

在这里插入图片描述

            

4. 聚合函数

  MySQL 提供了多种聚合函数,用于对一组值执行计算并返回单个值。这些函数在数据分析和报告生成中特别有用,因为它们允许你快速总结大量数据。以下是一些常用的 MySQL 聚合函数及其描述:

函数说明
COUNT([DISTINCT] expr)返回查询到的数据的 数量
SUM([DISTINCT] expr)返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr)返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr)返回查询到的数据的 最大值,不是数字没有意义
MIN([DISTINCT] expr)返回查询到的数据的 最小值,不是数字没有意义

  

统计学生的个数:

select count(name) from emp;

在这里插入图片描述
  

统计学生数学成绩的总分:

select sum(math) from emp;

在这里插入图片描述

  

计算学生的平局成绩:

select avg(chinese+math) 平均分 from emp;

在这里插入图片描述
  

打印数学成绩的最高分:

select max(math) from emp;

在这里插入图片描述

            

5. 其他函数

查询当前用户:

select user();

在这里插入图片描述
  

md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串:

select md5('admin')

在这里插入图片描述
  

database()显示当前正在使用的数据库:

select database();

在这里插入图片描述

  

password()函数,MySQL数据库使用该函数对用户加密:

select password('root');

在这里插入图片描述

  

ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值:

select ifnull('abc', '123');

在这里插入图片描述

            

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于java+springboot+vue实现的高校教师工作量管理系统(文末源码+Lw+ppt)23-451

摘 要 高校教师工作量管理系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了springboot框架。该系统从两个对象:由管理员和教师来对系统进行设计构建。主要功能包括:个人信息修改,对…

Jmeter文件上传不成功问题

前言 最近好忙呀,项目上线然后紧接着又客户培训了,由于项目有个模块全是走配置的,所以导致问题不断,近期要培训为了保障培训时客户同时操作的情况,所以把我从功能端抽出来做压测了,之前安排了2个同事写压测…

数据结构的基本框架以及泛型

目录 集合框架复杂度大O的渐进表示法 装包(箱)或者拆包(箱)装包拆包 泛型泛型的上界泛型方法求最大值 集合框架 Java的集合框架,Java Collection Framework 又被称为容器container, 定义在java.util包下的一组 interfaces 和其实现类 classes interface: 接口 abstracb class…

基于Linux内核的socket编程(TCP)的C语言示例

原文地址&#xff1a;https://www.geeksforgeeks.org/socket-programming-cc/ 服务端&#xff1a; #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <unistd.h>#…

【鸿蒙HarmonyOS开发笔记】开发小技巧之Blank组件与layoutWeight属性的使用

Blank组件 Blank可作为Column和Row容器的子组件 该组件不显示任何内容&#xff0c;并且会始终充满容器主轴方向上的剩余空间&#xff0c;效果如下&#xff1a; Entry Component struct BlankPage {build() {Column({ space: 50 }) {Row() {Image($r(app.media.icon_bluetoot…

uniapp修改头像,选择图片

一、页面效果 二、手机上的效果 使用过的实例&#xff1a; 手机上就会显示类似如下&#xff1a; 三、代码 <view class"cleaner-top" click"chooseImg"><view class"cleaner-avatar"><image :src"imgArr" mode"…

蚁群算法实现 - 全局路径规划算法

参考博客&#xff1a; &#xff08;1&#xff09;【人工智能】蚁群算法(密恐勿入) &#xff08;2&#xff09;计算智能——蚁群算法 &#xff08;3&#xff09;蚁群算法(实例帮助理解) &#xff08;4&#xff09;【数之道 04】解决最优路径问题的妙招-蚁群ACO算法 &#xff08;…

《A ConvNet for the 2020s》阅读笔记

论文标题 《A ConvNet for the 2020s》 面向 2020 年代的 ConvNet 作者 Zhuang Liu、Hanzi Mao、Chao-Yuan Wu、Christoph Feichtenhofer、Trevor Darrell 和 Saining Xie 来自 Facebook AI Research (FAIR) 和加州大学伯克利分校 初读 摘要 “ViT 盛 Conv 衰” 的现状&…

EI Scopus检索 | 第二届大数据、物联网与云计算国际会议(ICBICC 2024) |

会议简介 Brief Introduction 2024年第二届大数据、物联网与云计算国际会议(ICBICC 2024) 会议时间&#xff1a;2024年12月29日-2025年1月1日 召开地点&#xff1a;中国西双版纳 大会官网&#xff1a;ICBICC 2024-2024 International Conference on Big data, IoT, and Cloud C…

视频基础知识(一) 视频编码 | H.26X 系列 | MPEG 系列 | H.265

文章目录 一、视频编码二、 H.26X 系列1、H.2612、H.2633、H.2643.1 I帧3.2 P帧3.3 B帧 4、H.265 三、 MPEG 系列1、MPEG-12、MPEG-23、MPEG-44、MPEG-7 &#x1f680; 个人简介&#xff1a;CSDN「博客新星」TOP 10 &#xff0c; C/C 领域新星创作者&#x1f49f; 作 者&…

OSPF协议全面学习笔记

作者&#xff1a;BSXY_19计科_陈永跃 BSXY_信息学院 注&#xff1a;未经允许禁止转发任何内容 OSPF协议全面学习笔记 1、OSPF基础2、DR与BDR3、OSPF多区域4、虚链路Vlink5、OSPF报文6、LSA结构1、一类/二类LSA&#xff08;Router-LSA/Network-LSA&#xff09; 更新完善中... 1、…

STM32的USART能否支持9位数据格式话题

1、问题描述 STM32L051 这款单片机。平常的 USART 串口传输是 8 位数据&#xff0c;但是他的项目需要用串口传输 9 位数据。当设置为 8 位数据时&#xff0c;串口响应中断正常。但是&#xff0c;当设置为 9 位数据时&#xff0c;串口就不产生中断了。USART2 的 ISR 寄存器 RXN…

Monorepo 解决方案 — 基于 Bazel 的 Xcode 性能优化实践

背景介绍 书接上回《Monorepo 解决方案 — Bazel 在头条 iOS 的实践》&#xff0c;在头条工程切换至 Bazel 构建系统后&#xff0c;为了支持用户使用 Xcode 开发的习惯&#xff0c;我们使用了开源项目 Tulsi 作为生成工具&#xff0c;用于将 Bazel 工程转换为 Xcode 工程。但是…

【PyTorch】基础学习:一文详细介绍 torch.load() 的用法和应用

【PyTorch】基础学习&#xff1a;一文详细介绍 torch.load() 的用法和应用 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f44…

CMAKE_CUDA_ARCHITECTURES set to ‘native’多版本与版本号矛盾问题,报错

CMAKE_CUDA_ARCHITECTURES set to ‘native’多版本与版本号矛盾问题&#xff0c;报错 1. 报错提醒如下图2. 原因本地安装多个cuda版本导致native寻找到多个版本&#xff0c;导致报错3. 具体配置需要根据你的显卡型号来确认 1. 报错提醒如下图 2. 原因本地安装多个cuda版本导致…

sqllab第二十七关通关笔记

知识点&#xff1a; union select 关键字过滤 通过<> /**/进行截断处理 un<>ion sel<>ect 没效果uni/**/on sel/**/ect 被过滤了双写绕过 这关对select进行了多重过滤&#xff0c;无法进行双写绕过 大小写绕过 UNion SElect (这关可以用&am…

如何实现图片上传至服务器

在绝大多数的项目中都会涉及到文件上传等&#xff0c;下面我们来说一下技术派中是如何实现原生图片上传的&#xff0c;这个功能说起来简单&#xff0c;但其实对于技术还是有考验的。图片的上传涉及到IO读写&#xff0c;一个文件上传的功能&#xff0c;就可以把IO流涉及到的知识…

4500万英镑!英国深化发展量子计算背后“内有乾坤”

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 编辑丨慕一 编译/排版丨沛贤 深度好文&#xff1a;2200字丨15分钟阅读 近期&#xff0c;英国国家量子计算中心&#xff08;NQCC&#xff09;宣布量子计算实验台竞赛的结果&#xff0c;七家量子…

【SpringBoot】请求与响应参数 IoC与DI 总结

文章目录 ① —— 请求 ——一、简单参数 RequestParam1.1 参数与形参 命名相同1.2 参数与形参 命名不同 二、实体参数2.1 简单实体对象2.2 复杂实体对象 三、数组集合参数3.1 数组3.2 集合 RequestParam 四、日期参数 DateTimeFormat五、JSON参数 RequestBody六、路径参数 Pat…

202006A卷青少年软件编程(Scratch)等级考试试卷(三级)

第1题:【 单选题】 执行以下脚本后舞台上的角色将 ?( ) A:先克隆自身,克隆体出现后被删除 B:先克隆自身,克隆体出现后删除本体 C:克隆出自身后本体与克隆体同时被删除 D:克隆出自身后本体与克隆体被不会被删除 【正确答案】: A 【试题解析】 : 第2题:【 单选题】…