MySQL之函数:字符串函数、日期函数、数值函数、流程函数

字符串函数:用于对文本数据进行操作和处理

  1. CONCAT:用于将多个字符串连接成一个字符串。

    SELECT CONCAT('Hello', ' ', 'World'); -- 输出: 'Hello World'
    
  2. SUBSTRING:用于截取字符串的子串。包前不包后,从1开始

    SELECT SUBSTRING('MySQL', 1, 3); -- 输出: 'My'
    
  3. UPPERLOWER:用于将字符串转换为大写和小写。

    SELECT UPPER('mysql'); -- 输出: 'MYSQL'
    SELECT LOWER('MYSQL'); -- 输出: 'mysql'
    
  4. LENGTH:用于返回字符串的长度。

    SELECT LENGTH('MySQL'); -- 输出: 5
    
  5. TRIM:用于去除字符串两侧的空格或指定字符。

    SELECT TRIM('   MySQL   '); -- 输出: 'MySQL'
    SELECT TRIM('x' FROM 'xxxMySQLxxx'); -- 输出: 'MySQL'
  6. REPLACE:用于替换字符串中的指定子串。

    SELECT REPLACE('MySQL is great', 'great', 'awesome'); -- 输出: 'MySQL is awesome'
    
  7. LEFTRIGHT:用于从字符串的左边或右边截取指定长度的子串

    SELECT LEFT('MySQL', 2); -- 输出: 'My'
    SELECT RIGHT('MySQL', 3); -- 输出: 'SQL'
    
  8. INSTR:用于查找子串在字符串中的位置。

    SELECT INSTR('MySQL is great', 'is'); -- 输出: 7
    
  9. LOCATE:用于查找子串在字符串中的位置,类似于INSTR函数。

    SELECT LOCATE('is', 'MySQL is great'); -- 输出: 7
    
  10. REVERSE:用于将字符串反转。

    SELECT REVERSE('MySQL'); -- 输出: 'LqsyM'
    
  11. CONCAT_WS:用于将多个字符串使用指定分隔符连接成一个字符串。

    SELECT CONCAT_WS(', ', 'apple', 'orange', 'banana'); -- 输出: 'apple, orange, banana'
    
  12. LPADRPAD:用于在字符串左边或右边填充指定字符,使字符串达到指定长度。

    SELECT LPAD('hello', 10, '*'); -- 输出: '*****hello'
    SELECT RPAD('hello', 10, '*'); -- 输出: 'hello*****'
    
  13. ASCII:用于返回字符的ASCII码值;CHAR:用于根据ASCII码值返回字符。

    SELECT ASCII('A'); -- 输出: 65
    SELECT CHAR(65); -- 输出: 'A'
    

日期函数:用于处理和操作日期和时间数据

  1. CURDATE:用于返回当前日期。
    SELECT CURDATE(); -- 输出: 当前日期,如 '2024-04-09'
  2. CURTIME:用于返回当前时间。
    SELECT CURTIME(); -- 输出: 当前时间,如 '21:53:35'
  3. NOW:用于返回当前日期和时间。
    SELECT NOW(); -- 输出: 当前日期和时间,如 '2024-04-09 21:53:35'
    
  4. DATE:用于提取日期部分。
    SELECT DATE(NOW()); -- 输出: 当前日期,如 '2024-04-09'
    
  5. TIME:用于提取时间部分。
    SELECT TIME(NOW()); -- 输出: 当前时间,如 '21:53:35'
    
  6. DAY:用于提取日期的天数部分。
    SELECT DAY(NOW()); -- 输出: 当前日期的天数,如 9
    
  7. MONTH:用于提取日期的月份部分。
    SELECT MONTH(NOW()); -- 输出: 当前日期的月份,如 4
    
  8. YEAR:用于提取日期的年份部分。
    SELECT YEAR(NOW()); -- 输出: 当前日期的年份,如 2024
    
  9. DATE_FORMAT:用于格式化日期。
    SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); -- 输出: 格式化后的当前日期,如 '2024-04-09'
    
  10. DATEDIFF:用于计算两个日期之间的天数差。
    SELECT DATEDIFF('2024-04-10', '2024-04-01'); -- 输出: 9
    
  11. DATE_ADDDATE_SUB:用于对日期进行加减操作。
    SELECT DATE_ADD('2024-04-09', INTERVAL 1 DAY); -- 输出: '2024-04-10'
    SELECT DATE_SUB('2024-04-09', INTERVAL 1 MONTH); -- 输出: '2024-03-09'
    

数值函数:用于对数值数据进行操作和处理

  1. ABS:用于返回一个数的绝对值。
    SELECT ABS(-10); -- 输出: 10
    
  2. ROUND:用于将数值四舍五入到指定的小数位数。
    SELECT ROUND(3.14159, 2); -- 输出: 3.14
    
  3. CEIL:用于向上取整,FLOOR函数用于向下取整。
    SELECT CEIL(3.5); -- 输出: 4
    SELECT FLOOR(3.5); -- 输出: 3
    
  4. SQRT:用于计算一个数的平方根。
    SELECT SQRT(16); -- 输出: 4
    
  5. POWER:用于计算一个数的指定次幂。
    SELECT POWER(2, 3); -- 输出: 8
    
  6. RAND:用于生成一个0到1之间的随机数。
    SELECT RAND(); -- 输出: 0.12345(示例随机数)
    
  7. MOD:用于计算两个数的模。
    SELECT MOD(10, 3); -- 输出: 1
    
  8. SIGN:用于返回数值的符号,正数返回1,负数返回-1,0返回0。
    SELECT SIGN(-10); -- 输出: -1
    
  9. EXP:用于计算自然对数的指定数值次幂。
    SELECT EXP(1); -- 输出: 2.71828(e的近似值)
    
  10. LOG:用于计算指定数的自然对数。
    SELECT LOG(10); -- 输出: 2.30259(以e为底的对数)
    
  11. SINCOSTAN:分别用于计算给定角度的正弦、余弦和正切值。
    SELECT SIN(0); -- 输出: 0
    SELECT COS(0); -- 输出: 1
    SELECT TAN(0); -- 输出: 0
    

流程函数:用于在SQL语句中执行流程控制逻辑

  1. IF函数用于在条件成立时返回一个值,否则返回另一个值。
    SELECT IF(10 > 5, 'true', 'false'); -- 输出: 'true'
    
  2. CASE函数用于实现多重条件判断,类似于编程语言中的switch-case语句。
    SELECT CASE WHEN grade >= 90 THEN 'A'WHEN grade >= 80 THEN 'B'WHEN grade >= 70 THEN 'C'ELSE 'D'END AS grade_letter
    FROM students;
    
  3. COALESCE函数用于返回参数列表中的第一个非NULL值。
    SELECT COALESCE(NULL, 10, 20); -- 输出: 10
    
  4. NULLIF函数用于比较两个表达式,如果相等则返回NULL,否则返回第一个表达式的值。
    SELECT NULLIF(10, 10); -- 输出: NULL
    
  5. IFNULL函数用于判断第一个表达式是否为NULL,如果是则返回第二个表达式,否则返回第一个表达式。
    SELECT IFNULL(NULL, 'default'); -- 输出: 'default'
  6. CASE WHEN语句用于实现条件判断,类似于编程语言中的if-else语句。
    SELECT CASE WHEN age < 18 THEN 'Child'WHEN age >= 18 AND age < 65 THEN 'Adult'ELSE 'Senior'END AS age_group
    FROM users;
    SELECT CASE WHEN age < 18 THEN 'Child'WHEN age >= 18 AND age < 65 THEN 'Adult'ELSE 'Senior'END AS age_group
    FROM users;
  7. GREATEST函数用于返回参数列表中的最大值,LEAST函数用于返回参数列表中的最小值。
    SELECT GREATEST(10, 20, 30); -- 输出: 30
    SELECT LEAST(10, 20, 30); -- 输出: 10
    
  8. 在存储过程中使用,ITERATE用于跳到循环的下一次迭代,LEAVE用于退出循环。
    CREATE PROCEDURE test_loop()
    BEGINDECLARE i INT DEFAULT 0;my_loop: LOOPSET i = i + 1;IF i > 5 THENLEAVE my_loop;END IF;SELECT i;END LOOP my_loop;
    END;
  9. SIGNAL:在存储过程中使用,用于抛出一个自定义的错误消息。
    CREATE PROCEDURE test_signal()
    BEGINIF 10 < 5 THENSIGNAL SQLSTATE '45000'SET MESSAGE_TEXT = 'Custom error message';END IF;
    END;
    

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

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

相关文章

这4大流氓软件,以后看见记得绕着走。

第一个&#xff0c;2345浏览器。时不时弹出广告&#xff0c;还会自动修改你的默认主页&#xff0c;并且很难修改回去。 第二个&#xff0c;搜狗输入法。别以为它打字很方便&#xff0c;实际上弹广告也很方便。 第三个&#xff0c;快压。解压不仅给你弹广告&#xff0c;还能让…

TCP-IP详解卷一:协议——阅读总结

该内容适合程序员查看 第1章 概述 1.1 引言 WAN全称是 Wide Area Network&#xff0c;中文名为广域网。 LAN全称是 Local Area Network&#xff0c;中文名为局域网。 1.2分层 ICP/IP协议族通常被认为是一个四层协议系统 分层协议应用层Telnet、FTP和e-mail运输层TCP和UDP网…

在Terraform中定义模块依赖关系

在Terraform中定义模块依赖关系 是指在Terraform配置文件中明确声明模块之间的依赖关系&#xff0c;以确保正确的部署和管理基础设施。 Terraform是一个开源的基础设施即代码工具&#xff0c;它允许开发人员使用简单的声明性语言来定义和管理基础设施资源。模块是Terraform中…

EVAL-21489-EZLITE原理图下载方法

1&#xff0c;进入官网&#xff0c;搜索“21489”&#xff1a; 2&#xff0c;下拉找到EVAL-21489-EZLITE&#xff0c;点击“文件”&#xff1a; 3&#xff0c;点击“电路板设计数据库”的“查看全部”&#xff1a; 4&#xff0c;点击下载即可&#xff1a; 5&#xff0c;下载完成…

系统设计之订单系统中如何防止商品超卖

一、策略 在订单系统中&#xff0c;防止商品超卖是一个至关重要的问题&#xff0c;涉及到多个方面的策略和技术。以下是一些防止商品超卖的主要措施&#xff1a; 库存实时同步与检查&#xff1a; 确保订单系统和库存系统之间的数据实时同步&#xff0c;每次订单生成或取消时&…

Python 全栈体系【四阶】(二十五)

第五章 深度学习 二、计算机视觉基本理论 11. 图像梯度处理 11.1 什么是图像梯度 图像梯度计算的是图像变化的速度。对于图像的边缘部分&#xff0c;其灰度值变化较大&#xff0c;梯度值也较大&#xff1b;相反&#xff0c;对于图像中比较平滑的部分&#xff0c;其灰度值变化…

【鸿蒙开发】ArkTS和组件

1. 初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性。 当前&#xff0c;ArkTS在TS的基础上主要扩展了如下能力&#xff1a; 基本语法&#xff1a;ArkTS定义了声明式UI描述、自…

一招搞定vcruntime140_1.dll无法继续执行代码的解决方法

在我们日常频繁地与计算机互动、依赖其高效处理各类任务的过程中&#xff0c;偶尔会遭遇一些突发的技术问题&#xff0c;导致原本顺畅的操作流程被迫中断。其中一种常见的困扰便是系统弹出一则明确且令人颇感困惑的错误提示&#xff1a;“由于找不到vcruntime140_1.dll文件&…

C语言的显式类型转换和隐式类型转换详细讲解

目录 一、类型转换 1、显式类型转换 2、隐式类型转换 二、算术转换 三、总结 每个编译器都会对表达式做两件事情&#xff0c;一是判断表达式中操作符的优先级和结合性&#xff0c;二是判断表达式中的操作数类型是否一致&#xff0c;如果不一致则需要进行类型转换。第一点在…

机器学习(五) -- 监督学习(2) -- k近邻

系列文章目录及链接 目录 前言 一、K近邻通俗理解及定义 二、原理理解及公式 1、距离度量 四、接口实现 1、鸢尾花数据集介绍 2、API 3、流程 3.1、获取数据 3.2、数据预处理 3.3、特征工程 3.4、knn模型训练 3.5、模型评估 3.6、结果预测 4、超参数搜索-网格搜…

从零开始学RSA:已知n,e,d求p,q和私钥文件修复

(8)已知n,e,d求p,q 一看这个标题你就应该有个觉悟&#xff0c;n一定无法直接分解得到p和q。 题目: 10-存货5 题目给出了两个文件&#xff0c;一个是加密脚本chall.py&#xff0c;一个是加密后输出的内容output.txt。 分析一下加密脚本&#xff1a; from gmpy2 import invertf…

相机模型浅析

相机模型 文章目录 相机模型四个坐标系针孔相机模型世界坐标系到相机坐标系相机坐标系到图像坐标系图像坐标到像素坐标 四个坐标系 ①世界坐标系&#xff1a;是客观三维世界的绝对坐标系&#xff0c;也称客观坐标系。因为数码相机安放在三维空间中&#xff0c;我们需要世界坐标…

Python3 replace()函数使用详解:字符串的艺术转换

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

JavaScript(1)神秘的编程技巧

大家都感兴趣的箭头函数 箭头函数在许多场景中都可以发挥作用&#xff0c;尤其适用于简化函数声明和提高代码的可读性。以下是箭头函数可以使用的一些常见方面&#xff1a; &#xff08;1&#xff09;回调函数&#xff1a; 箭头函数特别适合作为回调函数&#xff0c;例如在事…

RuntimeError: Library cublas64_12.dll is not found or cannot be loaded

运行guillaumekln/faster-whisper-large-v2模型进行语音识别的时候报错了 RuntimeError: Library cublas64_12.dll is not found or cannot be loaded 代码&#xff1a; from faster_whisper import WhisperModelmodel WhisperModel("H:\\model\\guillaumekln\\faster…

Linux系统安装内网穿透实现固定公网地址访问本地MinIO服务

文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&am…

你不知道的JavaScript---深入理解 JavaScript 作用域

你好&#xff0c;我是小白Coding日志&#xff0c;一个热爱技术的程序员。在这里&#xff0c;我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客&#xff0c;一起在技术的世界里探索前行吧&#xff01; 1. 什么是作用域…

MY-Java高级面试题

1. jdk1.7 到 jdk1.8 Map 发生了什么变化 ( 底层 )? 1.8 之后 hashMap 的数据结构发生了变化&#xff0c;从之前的单纯的数组 链表结构变成数组 链 表 红黑树。也就是说在 JVM 存储 hashMap 的 K-V 时仅仅通过 key 来决定每一个 entry 的存 储槽位&…

网络安全:重要性与应对措施

1. 网络安全的重要性 随着互联网的普及和信息技术的快速发展&#xff0c;网络安全问题已经变得日益突出。网络攻击者可以通过各种手段窃取个人信息、破坏系统、传播病毒等&#xff0c;给个人和社会带来巨大的损失。因此&#xff0c;网络安全已经成为信息化时代的重要问题之一。…

【MySQL】如何判断一个数据库是否出问题

在实际的应用中&#xff0c;其实大多数是主从结构。而采用主备&#xff0c;一般都需要一定的费用。 对于主备&#xff0c;如果主机故障&#xff0c;那么只需要直接将流量打到备机就可以&#xff0c;但是对于一主多从&#xff0c;还需要将从库连接到主库上。 对于切换的操作&a…