MySQL 常用函数学习总结

1、数值函数

➢ 数学计算

○ ABS(x) 返回x的绝对值
SELECT ABS(-2);
○ EXP(x) 返回 e 的 x 次方
SELECT EXP(2);
○ LN 返回数字的自然对数
SELECT LN(2);
○ OG(x) 返回自然对数(以 e 为底的对数)
SELECT LOG(20.085536923188);
○ POW(x,y)/POWER(x,y) 返回 x 的 y 次方
SELECT POW(2,3);
SELECT POWER(2,3);
○ SQRT(x) 返回x的平方根
SELECT SQRT(25);
○ MOD(N,M) N除以M取余
select MOD(21,10);-- 1

➢ 四舍五入

○ CEIL(x)/CEILING(x) 返回大于或等于 x 的最小整数
SELECT CEIL(1.5);
SELECT CEILING(1.5); 
○ FLOOR(x) 返回小于或等于 x 的最大整数
SELECT FLOOR(1.5);
○ ROUND(x,y) 返回 x 保留y位小数,最后一位四舍五入
SELECT ROUND(1.23456);
○ TRUNCATE(x,y) 返回x 保留 y 位小数的值,最后一位不四舍五入,注意y为负数时向前截取,被截取的位数变为0
SELECT TRUNCATE(1.23456,3);

➢ 格式化函数

○ FORMAT(x,n) 将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入
SELECT FORMAT(250500.5634, 2); 

➢ 聚合函数

○ MAX(expression) 返回字段 expression 中的最大值
SELECT MAX(price) FROM tt;
○ MIN(expression) 返回字段 expression 中的最小值
SELECT MIN(price) FROM tt;
○ AVG(expression) 返回一个表达式的平均值
-- expression 是一个字段
SELECT AVG(score) FROM sc;
○ SUM(expression) 返回指定字段的总和
SELECT SUM(price) FROM tt;
○ COUNT(expression) 返回指定字段不为NULL的行数
SELECT COUNT(price) FROM tt;
○ GREATEST(expr1, expr2, expr3, …) 返回列表中的最大值
SELECT GREATEST(1, 12, 44, 12);
○ LEAST(expr1, expr2, expr3, …) 返回列表中的最小值
SELECT LEAST(3, 12, 34, 8, 25);

➢ 其他函数

○ RAND() 返回 0 到 1 的随机数
SELECT RAND();
○ SIGN(x) 返回 x 的符号,x 是负数、0、正数分别返回 -1、0 和 1
SELECT SIGN(-10);

2、字符串函数

➢ 获取字符串首字母ASCII 码

○ ASCII 返回字符串 s 的第一个字符的 ASCII 码
SELECT ASCII('AB');

➢ 获取字符串长度

○ LENGTH/CHAR_LENGTH(s)/CHARACTER_LENGTH(s) 返回字符串 s 的字符数
SELECT LENGTH('1234');

➢ 字符串拼接

○ CONCAT(s1,s2…sn) 字符串 s1,s2 等多个字符串合并为一个字符串
SELECT CONCAT('hel','llo');

➢ 字符串查找

○ FIND_IN_SET(s1,s2) 返回在字符串s2中与s1匹配的字符串的位置
-- 注意s2是一个集合,并非字符串,只有s1为s2的元素是才能找到
SELECT FIND_IN_SET("c", "a,b,c,d,e");
○ LOCATE(s1,s) 从字符串 s 中获取 s1 的第一次出现的位置,从1开始,未找到返回0
SELECT LOCATE('st','myteststring');
○ POSITION(s1 IN s) 从字符串 s 中获取 s1 的开始位置
SELECT POSITION('b' in 'abc');-- 2
○ INSTR(str,substr) 从字符串 str 中获取 substr 的第一次出现的位置,从1开始,未找到返回0
SELECT INSTR("234242","34")-- 2

➢ 字符串替换

○ INSERT(s1,x,len,s2) 字符串s1 中从 x 开始,长度为 len 的字符串 替换为 s2
SELECT INSERT("google.com", 1, 6, "runnob");
○ REPLACE(str,from_str,to_str) 将字符串 str 中的 from_str 替换为 to_str
SELECT REPLACE("123456789","123","321")
-- 321456789

➢ 字符串大小写转换

○ LCASE(s)/LOWER(s) 将字符串 s 的所有字母变成小写字母
SELECT LOWER('RUNOOB');
○ UCASE(s)/UPPER(s) 将字符串 s 的所有字母变成大写字母
SELECT UCASE('runoob');

➢ 字符串空格去除

○ TRIM(s) 去掉字符串 s 开始和结尾处的空格
SELECT TRIM('    RUNOOB    ');
○ LTRIM(s) 去掉字符串 s 开始处的空格
SELECT LTRIM('    RUNOOB    ');
○ RTRIM(s) 去掉字符串 s 结尾处的空格
SELECT RTRIM('    RUNOOB    ');

➢ 字符串截取

○ SUBSTR/SUBSTRING(s, start, length) 从字符串 s 的 start 位置截取长度为 length 的子字符串
SELECT SUBSTR("RUNOOB", 2, 3);
SELECT SUBSTRING("RUNOOB", 2, 3);
○ LEFT(str,len) 返回字符串str左边len个字符
SELECT LEFT("123456789",4)-- 1234
○ RIGHT(str,len) 返回字符串str右边len个字符
SELECT RIGHT("123456789",4)-- 6789

➢ 字符串其他操作

○ REPEAT(s,n) 将字符串 s 重复 n 次
SELECT REPEAT('runoob',3);-- runoobrunoobrunoob
○ REVERSE(s) 将字符串s的顺序反过来
SELECT REVERSE('abc');-- cba
○ STRCMP(s1,s2) 比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1
SELECT STRCMP("runoob", "runoob");-- 0

3、时间函数

➢ 获取当前时间

○ NOW() 返回当前日期和时间
select NOW();-- 2024-01-22 16:04:05
○ CURDATE()/CURRENT_DATE() 返回当前日期
SELECT CURDATE();
SELECT CURRENT_DATE();-- 2024-01-22
○ CURRENT_TIME()/CURTIME() 返回当前时间
SELECT CURRENT_TIME();-- 15:11:15
○ CURRENT_TIMESTAMP() 返回当前日期和时间
SELECT CURRENT_TIMESTAMP();-- 2024-01-22 15:11:27

➢ 时间计算

○ ADDDATE(d,n) 计算起始日期 d 加上 n 天的日期
SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY);-- 2017-06-25
○ ADDTIME(t,n) 时间 t 加上 n 秒的时间
SELECT ADDTIME('2011-11-11 11:11:11', 5);-- 2011-11-11 11:11:16

➢ 时间转换

○ DATE() 从日期或日期时间表达式中提取日期值
SELECT DATE("2024-06-15 11:11:16");-- 2024-06-15
○ YEAR(d) 返回日期值 d 的年部分
SELECT YEAR("2024-06-15"); -- 2024
○ MONTH(d) 返回日期值 d 的月部分
SELECT MONTH("2024-06-15"); -- 6
○ DAY(d) 返回日期值 d 的日部分
SELECT DAY("2024-06-15"); -- 15
○ HOUR(d) 返回日期值 d 的时部分
SELECT HOUR("2017-06-15 11:11:16");-- 11
○ MINUTE(d) 返回日期值 d 的分部分
SELECT MINUTE("2017-06-15 11:11:16");-- 11
○ SECOND(d) 返回日期值 d 的日期秒部分
SELECT SECOND("2017-06-15 11:11:16");-- 16
○ EXTRACT(type FROM d) 从日期 d 中获取指定的值,type 指定返回的值
SELECT EXTRACT(MINUTE FROM '2011-12-13 14:15:16');
-- 15
SELECT EXTRACT(DAY FROM '2011-12-13 14:15:16');
-- 13
SELECT EXTRACT(MONTH FROM '2011-12-13 14:15:16');
-- 12
SELECT EXTRACT(YEAR FROM '2011-12-13 14:15:16');
-- 2011
○ UNIX_TIMESTAMP(d) 得到时间戳
SELECT UNIX_TIMESTAMP('2019-2-19');-- 1550505600
○ DAYNAME(d) 返回日期 d 是星期几,如 Monday,Tuesday
SELECT DAYNAME('2024-11-11 11:11:11');-- Monday
○ DAYOFMONTH(d) 计算日期 d 是本月的第几天
SELECT DAYOFMONTH('2011-11-11 11:11:11');-- 11
○ DAYOFWEEK(d) 日期 d 今天是星期几,1 星期日,2 星期一,以此类推
SELECT DAYOFWEEK('2011-11-11 11:11:11');-- 6
○ DAYOFYEAR(d) 计算日期 d 是本年的第几天
SELECT DAYOFYEAR('2011-11-11 11:11:11');
○ WEEKOFYEAR(d) 计算日期 d 是本年的第几周
SELECT WEEKOFYEAR("2017-06-15 11:11:16");-- 24
○ QUARTER(d) 计算日期 d 是本年的第几季
SELECT QUARTER("2017-06-15 11:11:16");
○ LAST_DAY(d) 返回所在时间当月的最后一天
SELECT LAST_DAY('2011-11-11 11:11:11')-- 2011-11-30

➢ 时间格式化

○ DATE_FORMAT(d,f) 按表达式 f的要求显示日期 d
SELECT DATE_FORMAT('2024.11.11 11:11:11','%Y-%m-%d %r');-- 2024-11-11 11:11:11 AM

➢ 时间比较

○ DATEDIFF(d1,d2) 计算日期 d1->d2 之间相隔的天数
SELECT DATEDIFF('2001-01-01','2001-02-02'); -- -32
○ TIMESTAMPDIFF(unit,d1,d2) 按类型返回日期 d1->d2 之间相隔的数量
SELECT TIMESTAMPDIFF(YEAR,'2011-11-11 11:11:11', '2014-11-11 11:11:11')
-- 3SELECT TIMESTAMPDIFF(MONTH,'2011-11-11 11:11:11', '2014-11-11 11:11:11')
-- 36SELECT TIMESTAMPDIFF(DAY,'2011-11-11 11:11:11', '2014-11-11 11:11:11')
-- 1096
○ DATE_ADD(date,INTERVAL expr unit) 向前、向后偏移日期和时间,expr 可为正负
SELECT DATE_ADD("2017-06-15 11:11:16", INTERVAL 1 YEAR);-- 2018-06-15 11:11:16
○ DATE_SUB(date,INTERVAL expr unit) 向前、向后偏移日期和时间
SELECT DATE_ADD("2017-06-15 11:11:16", INTERVAL 1 YEAR);-- 2016-06-15 11:11:16

4、分支函数

○ IF(expr1,expr2,expr3) 条件分支,expr1为true返回expr2,否则返回expr3
SELECT IF(1>0,'yes','no');-- yes
○ IFNULL(expr1,expr2) expr1不为null返回expr1,否则返回expr2
SELECT IFNULL("2342","1")-- 2342

5、系统信息函数

○ VERSION()返回数据库的版本号
SELECT VERSION();-- 8.0.25
○ 查看当前登入用户的连接次数
SELECT CONNECTION_ID();-- 8
○ DATABASE()返回当前数据库名
SELECT DATABASE();-- test
○ CURRENT_USER()/SESSION_USER()/SYSTEM_USER()/USER() 返回当前用户
SELECT CURRENT_USER();

6、其他函数

○ CONV(x,f1,f2) 返回 f1 进制数变成 f2 进制数
-- 将13的10进制转换为2进制
SELECT CONV(13,10,2);-- 1101
○ INET_ATON(ip)函数 返回IP地址的数字表
○ INET_NTOA(NUM)函数 返回数字所代表的IP地址。
○ password(str) 密码加密函数,加密是单向的(不可逆)
○ md5(str) 加密函数,该函数为字符串算出一个MD5 128比特校验,返回值以32位16进制数字的二进制字符串
○ encode(str,pswd_str) 加密函数,pswd_str 为盐值
○ decode(加密的字符串, pswd_str) 解密encode加密的函数

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

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

相关文章

Redis拒绝连接的原因与解决方式

Redis拒绝连接的原因与解决方式 在某些情况下&#xff0c;当尝试从外部计算机连接到运行在保护模式下的Redis服务器时&#xff0c;您可能会遇到如下的错误信息&#xff1a; Caused by: org.redisson.client.RedisException: DENIED Redis is running in protected mode becau…

【Web前端实操21】商城官网_白色导航

今日份实现白色导航栏部分&#xff0c;也就是第三部分&#xff0c;效果如图中划线所示&#xff1a; 本次实现代码如之前的全局样式不再赘述&#xff0c;如有需要可以去我博客的Web前端实操19或者20自行查看。 本次主要更新mi.css和index.htm。 实现导航栏所需要的CSS样…

2015年苏州大学837复试机试C/C++

2015年苏州大学复试机试 第一题 题目 有36块砖&#xff0c;现在有36个人&#xff0c;男人能搬4块&#xff0c;女人能搬3块&#xff0c;小孩子两人搬一块&#xff0c;求一次搬完这些砖要男人&#xff0c;女人&#xff0c;小孩多少人&#xff1f; 代码 #include <iostrea…

仰暮计划|“那时候在生产队下面,集体干活,吃大锅饭,由队里分粮食,吃不饱饭是常事,队里分的粮食就那么点,想要吃饱真的太难了”

希望未来的中国越来越好&#xff0c;大家的生活也越来越好 老人是1955年在河南省洛阳市洛宁县的一个小山村里出生的&#xff0c;前半辈子为了生活&#xff0c;为了孩子而打拼&#xff0c;虽然经历了不少的苦难&#xff0c;但后半辈子也算是苦尽甘来&#xff0c;生活美满。现在就…

LeetCode-1483. 树节点的第 K 个祖先

原题链接&#xff1a;LeetCode-1483. 树节点的第 K 个祖先 题面 给你一棵树&#xff0c;树上有 n 个节点&#xff0c;按从 0 到 n-1 编号。树以父节点数组的形式给出&#xff0c;其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。 树节点的第 k 个祖先节点是从…

《Is dataset condensation a silver bullet for healthcare data sharing?》

一篇数据浓缩在医疗数据集应用中的论文。 其实就是在医疗数据集上使用了data condensation的方法&#xff0c;这里使用了DM的方式&#xff0c;并且新增了浓缩时候使用不同的网络。 1. 方法 数据浓缩DC的目的是&#xff1a; E x ∼ P D [ L ( φ θ O ( x ) , y ) ] ≃ E x ∼…

【Vue3+Vite】Vue3视图渲染技术 快速学习 第二期

文章目录 一、模版语法1.1 插值表达式和文本渲染1.1.1 插值表达式 语法1.1.2 文本渲染 语法 1.2 Attribute属性渲染1.3 事件的绑定 二、响应式基础2.1 响应式需求案例2.2 响应式实现关键字ref2.3 响应式实现关键字reactive2.4 扩展响应式关键字toRefs 和 toRef 三、条件和列表渲…

考研高数(共轭根式)

1.定义 共轭根式&#xff1a;是指两个不等于零的根式A、B&#xff0c;若它们的积AB不含根式&#xff0c;则称A、B互为共轭根式。 共轭根式的一个显著特点是通过相乘能把根号去掉&#xff0c;这是很有帮助的 2.常用的共轭根式 3.例题 1&#xff09;求极限 2&#xff09;证明…

常见分类网络的结构

VGG16 图片来自这里 MobilenetV3 small和large版本参数,图片来着这里 Resnet 图片来自这里

C++(8) 运算符重载

文章目录 运算符重载1.1 运算符概述1.2 运算符 重载1.3 运算符 << 重载 运算符重载 1.1 运算符概述 针对当前程序中常用的运算符&#xff0c;可以实现目标运算符处理当前数据类型的方式修改 需求&#xff1a; "ABCD" "BDC" > "ABCDBDC&qu…

长度最小的子数组(c++题解)

题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 输入格式 第一行输入两个整数n 和 target 第二行输入包含有n个元…

【Deep Dive: AI Webinar】数据合作和开源人工智能

【深入探讨人工智能】网络研讨系列总共有 17 个视频。我们按照视频内容&#xff0c;大致上分成了 3 个大类&#xff1a; 1. 人工智能的开放、风险与挑战&#xff08;4 篇&#xff09; 2. 人工智能的治理&#xff08;总共 12 篇&#xff09;&#xff0c;其中分成了几个子类&…

课程表分析

课程表分析 class Course(models.Model):name models.CharField(max_length64)title models.CharField(max_length64)students models.IntegerField(default0)level models.IntegerField(choices((0, 入门), (1, 进阶)), default0)time models.IntegerField(default0)det…

02、全文检索 ------ Solr(企业级的开源的搜索引擎) 的下载、安装、Solr的Web图形界面介绍

目录 Solr 的下载和安装Solr的优势&#xff1a;Lucene与Solr 安装 Solr1、下载解压2、添加环境变量3、启动 Solr Solr 所支持的子命令&#xff1a;Solr 的 Core 和 Collection 介绍Solr 的Web控制台DashBoard&#xff08;仪表盘&#xff09;Logging&#xff08;日志&#xff09…

代码随想录算法训练营29期|day34 任务以及具体任务

第八章 贪心算法 part03 1005.K次取反后最大化的数组和 class Solution {public int largestSumAfterKNegations(int[] nums, int K) {// 将数组按照绝对值大小从大到小排序&#xff0c;注意要按照绝对值的大小nums IntStream.of(nums).boxed().sorted((o1, o2) -> Math.ab…

华为1.24秋招笔试题

华为1.24秋招笔试题 1.题目1 题目详情 - 2024.1.24-华为秋招笔试-第一题-计算积分 - CodeFun2000 1.1题解 import java.util.Scanner;class Main{public static void main(String[] args){Scanner scnew Scanner(System.in);String ssc.next();char[] chs.toCharArray();in…

【INTEL(ALTERA)】如何在 Windows 操作系统上设置 Design Space Explorer II 远程 SSH 场

说明 从英特尔 Quartus Prime Pro Edition 软件 22.1 版本开始&#xff0c;您可以选择使用 Windows OpenSSH 服务器设置 Design Space Explorer II &#xff08;DSE II&#xff09;。 解决方法 1.让 DSE II 与 OpenSSH 协同工作的第一步是 安装 OpenSSH。应在远程主机上安装 Op…

electron从入门到打包exe

1.安装electron npm一直失败&#xff0c;我就cnpm安装的 2.创建一个简单示例&#xff1a; 新建一个文件夹&#xff0c;然后cmd 先搞个package.json: npm init -y然后再添加electron依赖 cnpm install electron然后再写个main.js const { app, BrowserWindow, Menu } req…

C++中的类的引入

一、类的引入 在C语言的结构体中只能定义变量&#xff1b;在C的结构体中&#xff0c;不仅可以定义变量&#xff0c;还可以定义函数。 例如&#xff0c;在用C语言实现栈时&#xff0c;结构体struct中只能定义变量&#xff1b;但是如果用C实现&#xff0c;结构体中还可以定义函…

qt语言国际化(翻译),并实现多窗口同时翻译

一、.pro文件中添加支持的语言 在.pro文件中添加下面几句&#xff0c;支持中文和英文 TRANSLATIONS lanague_cn.ts\lanague_en.ts二、通过qt语言家更新翻译生成.ts文件 完成以后在工程目录可以看到.ts文件 三、通过linguist翻译文件 打开文件 将两个文件同时选中&#xf…