mysql的函数(第一期)

一、字符串函数​

处理文本数据,常用函数:

  1. ​CONCAT(str1, str2, ...)​

    • ​作用​​:拼接字符串。
    • ​示例​​:SELECT CONCAT('Hello', ' ', 'World'); → Hello World
    • ​注意​​:若任一参数为 NULL,结果为 NULL
  2. ​CONCAT_WS(separator, str1, str2, ...)​

    • ​作用​​:用分隔符拼接字符串,自动忽略 NULL
    • ​示例​​:SELECT CONCAT_WS('-', '2023', NULL, '10'); → 2023-10
  3. ​SUBSTRING(str, start, length)​

    • ​作用​​:截取子串,索引从 1 开始。
    • ​示例​​:SELECT SUBSTRING('MySQL', 3, 2); → SQ
  4. ​REPLACE(str, from_str, to_str)​

    • ​作用​​:替换字符串中的子串。
    • ​示例​​:SELECT REPLACE('foo bar', 'foo', 'hello'); → hello bar
  5. ​TRIM([LEADING|TRAILING|BOTH] trim_str FROM str)​

    • ​作用​​:去除首尾空格或指定字符。
    • ​示例​​:SELECT TRIM(' MySQL '); → MySQL
  6. ​LENGTH(str)​​ 与 ​​CHAR_LENGTH(str)​

    • ​区别​​:LENGTH 返回字节数,CHAR_LENGTH 返回字符数。
    • ​示例​​:SELECT LENGTH('中文'), CHAR_LENGTH('中文'); → 6, 2(UTF-8编码)

​二、数值函数​

处理数值计算,常用函数:

  1. ​ROUND(num, decimals)​

    • ​作用​​:四舍五入,decimals 可为负数。
    • ​示例​​:SELECT ROUND(123.456, -1), ROUND(123.456, 2); → 120, 123.46
  2. ​CEIL(num)​​ 与 ​​FLOOR(num)​

    • ​作用​​:向上/向下取整。
    • ​示例​​:SELECT CEIL(3.1), FLOOR(3.9); → 4, 3
  3. ​RAND()​

    • ​作用​​:生成 [0,1) 的随机数。
    • ​示例​​:SELECT RAND(); → 随机值如 0.123
    • ​注意​​:结合 ORDER BY RAND() 可随机排序,但性能较差。
  4. ​POW(x, y)​

    • ​作用​​:计算 x 的 y 次方。
    • ​示例​​:SELECT POW(2, 3); → 8

​三、日期时间函数​

处理日期和时间,常用函数:

  1. ​NOW()​

    • ​作用​​:返回当前日期和时间(格式:YYYY-MM-DD HH:mm:ss)。
    • ​示例​​:SELECT NOW(); → 2023-10-10 14:30:00
  2. ​DATE_FORMAT(date, format)​

    • ​作用​​:格式化日期。
    • ​示例​​:SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); → 2023-10-10
  3. ​DATEDIFF(date1, date2)​

    • ​作用​​:计算两个日期相差的天数。
    • ​示例​​:SELECT DATEDIFF('2023-10-10', '2023-10-01'); → 9
  4. ​DATE_ADD(date, INTERVAL expr unit)​

    • ​作用​​:日期加法。
    • ​示例​​:SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH); → 当前日期加一个月。
  5. ​EXTRACT(unit FROM date)​

    • ​作用​​:提取日期部分(如年、月、日)。
    • ​示例​​:SELECT EXTRACT(YEAR FROM '2023-10-10'); → 2023

​四、流程控制函数​

处理条件逻辑:

  1. ​IF(condition, value_if_true, value_if_false)​

    • ​示例​​:SELECT IF(score >= 60, 'Pass', 'Fail');
  2. ​CASE​

    • ​作用​​:多条件分支。
    • ​示例​​:
      SELECT CASE WHEN score >= 90 THEN 'A'WHEN score >= 80 THEN 'B'ELSE 'C'END AS grade
      FROM students;
  3. ​COALESCE(value1, value2, ...)​

    • ​作用​​:返回第一个非 NULL 值。
    • ​示例​​:SELECT COALESCE(NULL, 'default'); → default

​五、聚合函数​

对多行数据进行统计:

  1. ​SUM(column)​

    • ​作用​​:求和,忽略 NULL
  2. ​COUNT(expr)​

    • ​示例​​:COUNT(*) 统计行数,COUNT(DISTINCT column) 去重计数。
  3. ​GROUP_CONCAT(expr)​

    • ​作用​​:合并多行结果,默认逗号分隔。
    • ​示例​​:SELECT GROUP_CONCAT(name SEPARATOR '|') FROM users;
  4. ​AVG(column)​​ 与 ​​MAX(column)/MIN(column)​

    • ​注意​​:AVG 忽略 NULLMAX/MIN 适用于数值、日期和字符串。

​六、加密函数​

  1. ​MD5(str)​​ 与 ​​SHA1(str)​

    • ​示例​​:SELECT MD5('password'); → 32位哈希值。
  2. ​SHA2(str, hash_length)​

    • ​示例​​:SELECT SHA2('password', 256); → 64位哈希值。

​七、注意事项​

  1. ​索引失效​​:避免在 WHERE 中对索引列使用函数(如 WHERE YEAR(date) = 2023)。
  2. ​NULL 处理​​:函数如 SUM 忽略 NULL,而 CONCAT 遇到 NULL 返回 NULL
  3. ​版本差异​​:窗口函数(如 ROW_NUMBER())仅支持 MySQL 8.0+。
  4. ​性能优化​​:谨慎使用 ORDER BY RAND() 或大文本处理函数。

​八、自定义函数​

通过 CREATE FUNCTION 可定义存储函数,需注意权限和语法:

DELIMITER $$
CREATE FUNCTION add_tax(price FLOAT) RETURNS FLOAT
BEGINRETURN price * 1.1;
END 
$$
DELIMITER ;

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

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

相关文章

Linux下的网络管理

注意:本文使用的Linux系统版本为Red Hat Enterprise Linux 9 (RHEL 9)。 在RHEL9上,使用NM(NetworkManager)进行网络配置,ifcfg (也称为 文件)将不再是网络配置文件的主存储。虽然 ifcfg 样式仍…

游戏引擎学习第233天

原地归并排序地方很蒙圈 game_render_group.cpp:注意当前的SortEntries函数是O(n^2),并引入一个提前退出的条件 其实我们不太讨论这些话题,因为我并没有深入研究过计算机科学,所以我也没有太多内容可以分享。但希望在过去几天里…

从《周游记3》演绎歌剧版《菊花台》,周杰伦婚礼曲目意大利文版惊喜亮相

今天(4月19日)22:00,由魔胴西西里咖啡冠名的户外实境互动综艺《周游记3》第四期即将播出。本期节目中,“J式之旅”发起人周杰伦和林暐恒、杜国璋、陈冠霖、陈冠廷,将继续意大利之旅,从那不勒斯的百年老店到…

Linux系统编程 day6 进程间通信mmap

父子共享的信息:文件描述符,mmap建立的共享映射区(MAP_SHARED) mmap父子间进程通信 var的时候 :读时共享,写时复制 父进程先创建映射区,指定共享MAP_SHARED权限 , fork创建子进程…

opencv--图像处理

图像处理技术 图像处理技术是利用计算机对图像进行计算,分析和处理的技术,包括数字图像处理和计算机视觉两大领域。 对图像的处理包括滤波,缩放,分割,识别(两种信息对比)等。 链接 数字图像处理 1. 数字图像处理(Digital Image Processing) 数字图像处理主要关注图…

Spring 学习笔记之 @Transactional详解

一、数据库事务基础 数据库事务(Transaction)是数据库管理系统中用于确保数据一致性和完整性的一种机制。它是一组操作的集合,这些操作要么全部成功,要么全部失败,从而保证数据库状态的正确性。 1.1 事务的基本概念 定…

【Openlayers】Openlayers 入门教程

Openlayers 入门教程 -系列文章列表 openlayers 入门教程(一):openlayers简介 openlayers 入门教程(二):Map 篇 openlayers 入门教程(三):View 篇 openlayers 入门教程&a…

【Lua语言】Lua语言快速入门

初始Lua Lua是一种轻量小巧的脚本语言,他使用标准C语言编写并以源代码形式开放。这意味着Lua虚拟机可以很方便的嵌入别的程序中,从而为应用程序提供灵活的扩展和定制功能。同时,在目前脚本引擎中,Lua的运行速度占有绝对优势。 变…

车载诊断新架构--- SOVD初入门(上)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

linux查看目录相关命令

查看目录命令 学习目标 能够使用Linux命令查看目录信息 1. 查看目录命令的使用 命令说明ls查看当前目录信息tree以树状方式显示目录信息 ls命令效果图: tree命令效果图: 2. 查看当前目录路径 命令说明pwd查看当前目录路径 pwd命令效果图: 3. 清除终端内容 命令说明clear…

JavaScript中的Event事件对象详解

一、事件对象(Event)概述 1. 事件对象的定义 event 对象是浏览器自动生成的对象,当用户与页面进行交互时(如点击、键盘输入、鼠标移动等),事件触发时就会自动传递给事件处理函数。event 对象包含了与事件…

OSPF综合实验(HCIP)

1,R5为ISP,其上只能配置Ip地址;R4作为企业边界路由器, 出口公网地址需要通过ppp协议获取,并进行chap认证 2,整个OSPF环境IP基于172.16.0.0/16划分; 3,所有设备均可访问R5的环回&…

2024-04-19| Java: Documented注解学习 JavaDoc

在 Java 中,Documented 是一个元注解(meta-annotation),用于标记其他注解,表明这些注解应该被包含在 JavaDoc 文档中。以下是关于 Documented 注解的作用的简要说明: 作用 记录注解信息到 JavaDoc&#x…

15.Chromium指纹浏览器开发教程之WebAudio指纹定制

WebAudio指纹概述 浏览器中的 WebAudio API 提供了丰富的功能,其中包括了大量生成和处理音频数据的API。WebAudio API 的音频指纹技术是一种利用音频信号的特征来唯一标识音频的技术。因为WebAudio API 提供了丰富的音频处理功能,包括合成、过滤、分析等…

2025年赣教云智慧作业微课PPT模板

江西的老师们注意,2025年赣教云智慧作业微课PPT模版和往年不一样,千万不要搞错了,图上的才是正确的2025年的赣教云智慧作业微课PPT模版,赣教云智慧作业官网有问题,无法正确下载该模板,需要该模板的&#xf…

2.5.1DOS下常用工具 curl,netstat,telnet命令使用

curl命令 Win10及以上系统默认已安装Curl,打开命令提示符输入 curl --help,若显示帮助信息则无需安装 ​​手动安装方法​​ 官网下载:访问 curl官网 选择Windows版本curl for Windows若需在 Windows XP 等旧系统使用,需选择更…

使用Redis实现实时排行榜

为了实现一个实时排行榜系统,我们可以使用Redis的有序集合(ZSet),其底层通常是使用跳跃表实现的。有序集合允许我们按照分数(score)对成员(member)进行排序,因此非常适合…

Linux——firewalld防火墙(笔记)

目录 一:Firewalld防火墙的概述 (1)firewalld简介 (2)firewalld&iptables的关系 (3)firewalld与iptables service的区别 1. ‌规则管理方式‌ 2. ‌默认策略与设计逻辑‌ 3. ‌配置文…

JS中实现类似sleep、wait、delay的延时功能

前言 编写代码时很多时候需要进行流程化的操作,各个流程间通常需要等待一定时间,这在很多语言中通常可以使用 sleep 、 wait 、 delay 等函数来实现。JavaScript原生并没有类似的功能,想要延时通常就是使用 setTimeout(functionRef, delay) …

Elasticsearch:使用 ES|QL 进行搜索和过滤

本教程展示了 ES|QL 语法的示例。请参考 Query DSL 版本,以获得等效的 Query DSL 语法示例。 这是一个使用 ES|QL 进行全文搜索和语义搜索基础知识的实践介绍。 有关 ES|QL 中所有搜索功能的概述,请参考《使用 ES|QL 进行搜索》。 在这个场景中&#x…