【MySQL】06.内置函数

news2025/7/18 1:06:08

1. 聚合函数

-- 统计表中的人数
-- 使用 * 做统计,不受 NULL 影响
mysql> select count(*) 人数 from exam_result;
+--------+
| 人数   |
+--------+
|      5 |
+--------+
1 row in set (0.01 sec)

-- 使用表达式做统计 
mysql> select count(name) 人数 from exam_result;
+--------+
| 人数   |
+--------+
|      5 |
+--------+
1 row in set (0.00 sec)

-- 统计数学成绩总分
mysql> select sum(math) 数学总分 from exam_result;
+--------------+
| 数学总分     |
+--------------+
|          458 |
+--------------+
1 row in set (0.00 sec)

-- 统计平均总分
mysql> select avg(math + chinese + english) 平均分 from exam_result;
+-----------+
| 平均分    |
+-----------+
|     320.8 |
+-----------+
1 row in set (0.00 sec)

-- 返回最高总分
mysql> select max(math + chinese + english) 最高总分 from exam_result;
+--------------+
| 最高总分     |
+--------------+
|          364 |
+--------------+
1 row in set (0.00 sec)

-- 返回 > 70 分以上的数学最低分
mysql> select min(math) 数学低分 from exam_result where math > 70;
+--------------+
| 数学低分     |
+--------------+
|           78 |
+--------------+
1 row in set (0.00 sec)

-- having 结构
mysql> select math + chinese + english .总分 from exam_result having 总分 > 320;
+--------+
| 总分   |
+--------+
|    329 |
|    364 |
|    321 |
+--------+
3 rows in set (0.00 sec)

 2. 日期函数

• 获得年月日

mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2025-05-23     |
+----------------+
1 row in set (0.00 sec)

• 获得时分秒

mysql> select current_time();
+----------------+
| current_time() |
+----------------+
| 20:09:47       |
+----------------+
1 row in set (0.00 sec)

• 获得时间戳

mysql> select current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2025-05-23 20:10:43 |
+---------------------+
1 row in set (0.00 sec)

• 在日期的基础上加上时间

mysql> select date_add(date(current_timestamp()),interval 20 day);
+-----------------------------------------------------+
| date_add(date(current_timestamp()),interval 20 day) |
+-----------------------------------------------------+
| 2025-06-12                                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)

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

mysql> select date_sub(date(current_timestamp()),interval 20 day);
+-----------------------------------------------------+
| date_sub(date(current_timestamp()),interval 20 day) |
+-----------------------------------------------------+
| 2025-05-03                                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)

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

mysql> select datediff(date(current_timestamp()),'2020-4-26');
+-------------------------------------------------+
| datediff(date(current_timestamp()),'2020-4-26') |
+-------------------------------------------------+
|                                            1853 |
+-------------------------------------------------+
1 row in set (0.00 sec)

 当前时间

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2025-05-23 20:20:10 |
+---------------------+
1 row in set (0.00 sec)

 创建一个留言表的示例

mysql> create table msg( 
        id int primary key auto_increment, 
        content varchar(30) not null, 
        sendtime datetime 
       );
Query OK, 0 rows affected (0.03 sec)

mysql> insert into msg(content,sendtime) values('hello',now()),('world',now());
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into msg(content,sendtime) values('send',now()),('you',now());
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from msg;
+----+---------+---------------------+
| id | content | sendtime            |
+----+---------+---------------------+
|  1 | hello   | 2025-05-23 20:26:45 |
|  2 | world   | 2025-05-23 20:26:45 |
|  3 | send    | 2025-05-23 20:27:17 |
|  4 | you     | 2025-05-23 20:27:17 |
+----+---------+---------------------+
4 rows in set (0.00 sec)

mysql> select * from msg where date_add(sendtime,interval 3 minute) > now();
+----+---------+---------------------+
| id | content | sendtime            |
+----+---------+---------------------+
|  3 | send    | 2025-05-23 20:27:17 |
|  4 | you     | 2025-05-23 20:27:17 |
+----+---------+---------------------+
2 rows in set (0.00 sec)

3. 字符串函数

 获取ms表的content列的字符集

mysql> select distinct charset(content) from msg;
+------------------+
| charset(content) |
+------------------+
| utf8mb4          |
+------------------+
1 row in set (0.00 sec)

 字符串拼接

mysql> select concat(id,'发送的文本内容是:',content,' ,发送的时间是:',sendtime)  文本内容 from msg;
+-----------------------------------------------------------------------------+
| 文本内容                                                                    |
+-----------------------------------------------------------------------------+
| 1发送的文本内容是:hello ,发送的时间是:2025-05-23 20:26:45                 |
| 2发送的文本内容是:world ,发送的时间是:2025-05-23 20:26:45                 |
| 3发送的文本内容是:send ,发送的时间是:2025-05-23 20:27:17                  |
| 4发送的文本内容是:you ,发送的时间是:2025-05-23 20:27:17                   |
+-----------------------------------------------------------------------------+
4 rows in set (0.00 sec)

 字串出现的位置

mysql> select instr('I am a happy day','hap');
+---------------------------------+
| instr('I am a happy day','hap') |
+---------------------------------+
|                               8 |
+---------------------------------+
1 row in set (0.00 sec)

 大小写转化

mysql> select ucase('I am a happy day');
+---------------------------+
| ucase('I am a happy day') |
+---------------------------+
| I AM A HAPPY DAY          |
+---------------------------+
1 row in set (0.00 sec)

mysql> select lcase('I AM A HAPPY DAY');
+---------------------------+
| lcase('I AM A HAPPY DAY') |
+---------------------------+
| i am a happy day          |
+---------------------------+
1 row in set (0.00 sec)

 截取子串

mysql> select left('I AM A HAPPY DAY',6);
+----------------------------+
| left('I AM A HAPPY DAY',6) |
+----------------------------+
| I AM A                     |
+----------------------------+
1 row in set (0.00 sec)

 计算字符串字节数

mysql> select length('I AM A HAPPY DAY');
+----------------------------+
| length('I AM A HAPPY DAY') |
+----------------------------+
|                         16 |
+----------------------------+
1 row in set (0.00 sec)

 字符串替换

mysql> select replace('I AM A HAPPY DAY','HAPPY','999990');
+----------------------------------------------+
| replace('I AM A HAPPY DAY','HAPPY','999990') |
+----------------------------------------------+
| I AM A 999990 DAY                            |
+----------------------------------------------+
1 row in set (0.00 sec)

 空格去除

mysql> select trim('    I AM A HAPPY DAY     ');
+-----------------------------------+
| trim('    I AM A HAPPY DAY     ') |
+-----------------------------------+
| I AM A HAPPY DAY                  |
+-----------------------------------+
1 row in set (0.00 sec)

4. 数学函数

  绝对值

mysql> select abs(-10.89);
+-------------+
| abs(-10.89) |
+-------------+
|       10.89 |
+-------------+
1 row in set (0.00 sec)

  进制转化

mysql> select bin(19);
+---------+
| bin(19) |
+---------+
| 10011   |
+---------+
1 row in set (0.00 sec)

mysql> select hex(19);
+---------+
| hex(19) |
+---------+
| 13      |
+---------+
1 row in set (0.00 sec)

mysql> select conv(19,10,8);
+---------------+
| conv(19,10,8) |
+---------------+
| 23            |
+---------------+
1 row in set (0.00 sec)

  取整

mysql> select ceiling(8.4);
+--------------+
| ceiling(8.4) |
+--------------+
|            9 |
+--------------+
1 row in set (0.00 sec)

mysql> select floor(8.4);
+------------+
| floor(8.4) |
+------------+
|          8 |
+------------+
1 row in set (0.00 sec)

5. 其他函数

-- user() 查询当前用户
mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

-- md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串
mysql> select md5('admin');
+----------------------------------+
| md5('admin')                     |
+----------------------------------+
| 21232f297a57a5a743894a0e4a801fc3 |
+----------------------------------+
1 row in set (0.00 sec)

-- database()显示当前正在使用的数据库
mysql> select database();
+------------+
| database() |
+------------+
| func       |
+------------+
1 row in set (0.00 sec)

-- password()函数,MySQL数据库使用该函数对用户加密
mysql> select password('root');
+-------------------------------------------+
| password('root')                         |
+-------------------------------------------+
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------------------------------------------+

-- ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值
mysql> select ifnull(null,'000');
+--------------------+
| ifnull(null,'000') |
+--------------------+
| 000                |
+--------------------+
1 row in set (0.00 sec)

mysql> select ifnull('hello','000');
+-----------------------+
| ifnull('hello','000') |
+-----------------------+
| hello                 |
+-----------------------+
1 row in set (0.00 sec)

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

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

相关文章

企业微信内部网页开发流程笔记

背景 基于ai实现企微侧边栏和工作台快速问答小助,需要h5开发,因为流程不清楚摸索半天,所以记录一下 一、网页授权登录 1. 配置步骤 1.1 设置可信域名 登录企业微信管理后台 进入"应用管理" > 选择开发的具体应用 > “网…

智慧在线判题OJ系统项目总体,包含功能开发思路,内部中间件,已经部分知识点

目录 回顾一下xml文件怎么写 哪个地方使用了哪个技术 MyBatis-Plus-oj的表结构设计, 管理员登录功能 Swagger Apifox​编辑 BCrypt 日志框架引入(slf4jlogback) nacos Swagger无法被所有微服务获取到修改的原因 身份认证三种方式: JWT(Json Web Json,一…

【MySQL】2-MySQL索引P2-执行计划

欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 EXPLAINexplain output 执行计划输出解释重点typ…

云电脑显卡性能终极对决:ToDesk云电脑/顺网云/海马云,谁才是4K游戏之王?

一、引言 1.1 云电脑的算力革命 云电脑与传统PC的算力供给差异 传统PC的算力构建依赖用户一次性配置本地硬件,特别是CPU与显卡(GPU)。而在高性能计算和游戏图形渲染等任务中,GPU的能力往往成为决定体验上限的核心因素。随着游戏分…

influxdb时序数据库

以下概念及操作均来自influxdb2 官方文档 InfluxDB2 is the platform purpose-built to collect, store, process and visualize time series data. Time series data is a sequence of data points indexed in time order. Data points typically consist of successive meas…

OpenCV CUDA模块图像处理------颜色空间处理之用于执行伽马校正(Gamma Correction)函数gammaCorrection()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::cuda::gammaCorrection 是 OpenCV 的 CUDA 模块中用于执行伽马校正(Gamma Correction)的一个函数。伽马校正通常用于…

商品条形码查询接口如何用C#进行调用?

一、什么是商品条码查询接口? 1974年6月26日,美国俄亥俄州的一家超市首次使用商品条码完成结算,标志着商品条码正式进入商业应用领域。这项技术通过自动识别和数据采集,极大提升了零售行业的作业效率,减少了人工录入错…

多模态大语言模型arxiv论文略读(九十一)

FineCLIPER: Multi-modal Fine-grained CLIP for Dynamic Facial Expression Recognition with AdaptERs ➡️ 论文标题:FineCLIPER: Multi-modal Fine-grained CLIP for Dynamic Facial Expression Recognition with AdaptERs ➡️ 论文作者:Haodong C…

攻防世界 - MISCall

下载得到一个没有后缀的文件,把文件放到kali里面用file命令查看 发现是bzip2文件 解压 变成了.out文件 查看发现了一个压缩包 将其解压 发现存在.git目录和一个flag.txt,flag.txt是假的 恢复git隐藏文件 查看发现是将flag.txt中内容读取出来然后进行s…

在PyTorch中,对于一个张量,如何快速为多个元素赋值相同的值

我们以“a torch.arange(12).reshape((3, -1))”为例,a里面现在是: 如果我们想让a的右下角的2行3列的元素都为10的话,可以如何快速实现呢? 我们可以用到索引和切片技术,执行如下的指令即可达到目标: a[1…

苍穹外卖--Redis

1.Redis入门 1.1Redis简介 Redis是一个基于内存的key-value结果数据库 基于内存存储,读写性能高 适合存储热点数据(热点商品、资讯、新闻) 企业应用广泛 Redis的Windows版属于绿色软件,直接解压即可使用,解压后目录结构如下&#xff1a…

深度学习————注意力机制模块

关于注意力机制我自己的一点理解:建立各个维度数据之间的关系,就是对已经处理为特征图的数据,将其他影响因素去除(比如通道注意力,就将空间部分的影响因素消除或者减到极小)再对特征图进行以此特征提取 以此…

python:基础爬虫、搭建简易网站

一、基础爬虫代码: # 导包 import requests # 从指定网址爬取数据 response requests.get("http://192.168.34.57:8080") print(response) # 获取数据 print(response.text)二、使用FastAPI快速搭建网站: # TODO FastAPI 是一个现代化、快速…

好坏质检分类实战(异常数据检测、降维、KNN模型分类、混淆矩阵进行模型评估)

任务 好坏质检分类实战 task: 1、基于 data_class_raw.csv 数据,根据高斯分布概率密度函数,寻找异常点并剔除 2、基于 data_class_processed.csv 数据,进行 PCA 处理,确定重要数据维度及成分 3、完成数据分离,数据分离…

YOLOv4:目标检测的新标杆

引言 YOLO(You Only Look Once)系列作为目标检测领域的经典算法,以其高效的检测速度和良好的准确率闻名。2020年推出的YOLOv4在保持YOLO系列高速检测特点的同时,通过引入多项创新技术,将检测性能提升到了新高度。本文将详细介绍YOLOv4的核心…

LabVIEW通用测控平台设计

基于 LabVIEW 图形化编程环境,设计了一套适用于工业自动化、科研测试领域的通用测控平台。通过整合研华、NI等品牌硬件,实现多类型数据采集、实时控制及可视化管理。平台采用模块化架构,支持硬件灵活扩展,解决了传统测控系统开发周…

【机器学习基础】机器学习入门核心算法:K-近邻算法(K-Nearest Neighbors, KNN)

机器学习入门核心算法:K-近邻算法(K-Nearest Neighbors, KNN) 一、算法逻辑1.1 基本概念1.2 关键要素距离度量K值选择 二、算法原理与数学推导2.1 分类任务2.2 回归任务2.3 时间复杂度分析 三、模型评估3.1 评估指标3.2 交叉验证调参 四、应用…

FastMoss 国际电商Tiktok数据分析 JS 逆向 | MD5加密

1.目标 目标网址:https://www.fastmoss.com/zh/e-commerce/saleslist 切换周榜出现目标请求 只有请求头fm-sign签名加密 2.逆向分析 直接搜fm-sign 可以看到 i["fm-sign"] A 进入encryptParams方法 里面有个S()方法加密,是MD5加密 3.代…

【Linux】基础开发工具(下)

文章目录 一、自动化构建工具1. 什么是 make 和 Makefile?2. 如何自动化构建可执行程序?3. Makefile 的核心思想4. 如何清理可执行文件?5. make 的工作原理5.1 make 的执行顺序5.2 为什么 make 要检查文件是否更新?5.2.1 避免重复…

chrome打不开axure设计的软件产品原型问题解决办法

1、打开原型文件夹,进入到其中的如下目录中:resources->chrome->axure-chrome-extension.crx,找到 Axure RP Extension for Chrome插件。 2、axure-chrome-extension.crx文件修改扩展名.rar,并解压到文件夹 axure-chrome-ex…