mysql常用函数五大类

news2024/11/15 14:05:02

mysql常用函数

  • 1. 第一类:数值函数
    • 1.1 圆周率pi的值
    • 1.2 求绝对值
    • 1.3 返回数字的符号
    • 1.4 开平方,根号
    • 1.5 求两个数的余数
    • 1.6 截取正数部分
    • 1.7 向上取整数
    • 1.8 向下取整数
    • 1.9 四舍五入函数
    • 1.10 随机数函数
    • 1.11 数值左边补位函数
    • 1.12 数值右边补位函数
    • 1.13 次方函数
    • 1.14 特殊次方函数e
    • 1.15 对数函数
    • 1.16 其他对数函数
    • 1.17 三角函数
  • 2. 第二类:字符串函数
    • 2.1 计算字符串的长度
    • 2.2 字符串大小写转换
    • 2.3 字符串反转
    • 2.4 字符串合并
    • 2.5 删除空格
    • 2.6 取左右两边的字符串
    • 2.7 取中间的字符串
    • 2.8 返回字符串的位置
    • 2.9 字符串的替换
    • 2.10 比较字符串
    • 2.11 重复字符串
  • 3. 第三类:时间日期函数
    • 3.1 获取当前的日期
    • 3.2 获取当前的时间
    • 3.3 获取当前的日期时间
    • 3.4 获取unix时间戳
    • 3.5 时间戳转为日期
    • 3.6 获取年月日时分秒季度星期
    • 3.7 时间转换为秒
    • 3.8 秒转换为时间
    • 3.9 时间日期的加减
    • 3.10 两个日期相减
    • 3.11 日期格式化
  • 4. 第四类:聚类函数
  • 5. 第五类:逻辑判断函数
    • 5.1. if
    • 5.2 ifnull
    • 5.3 case when

1. 第一类:数值函数

1.1 圆周率pi的值

select pi();

在这里插入图片描述

1.2 求绝对值

  • abs(x)
    • 参数x就是一个数值
select abs(1),abs(-11);

在这里插入图片描述

1.3 返回数字的符号

  • sign(x),x为数值
    • 正数返回1; 负数返回-1; 0返回0
      select sign(1),sign(-2.34),sign(11),sign(0);
      

在这里插入图片描述

1.4 开平方,根号

  • sqrt(x),x是一个数值
    select sqrt(2);
    
    在这里插入图片描述

1.5 求两个数的余数

  • mod(x,y)
    • x除数,y被除数
    select 9/7,mod(9,7) -- 余数;
    
    在这里插入图片描述

1.6 截取正数部分

  • truncate(x,n),n截取的小数的位数
  • 注意:n可以是负数,意思是-1是各位,-2是十位…
    select 9/7,truncate(9/7,0),truncate(9/7,2)341243552352,truncate(341243552352,-2);
    
    在这里插入图片描述

1.7 向上取整数

  • 向上取整数,如果有小数的话,向上进一位,值变大
  • ceil(x),ceiling(x)
    select 12.43434,ceil(12.43434),ceil(-12.43434),ceiling(12.43434);
    
    在这里插入图片描述

1.8 向下取整数

  • 向下取整数,把小数去掉
  • floor(x)
    select 12.43434,floor(12.43434),floor(-12.43434);
    
    在这里插入图片描述

1.9 四舍五入函数

  • round(x,n),n是四舍五入的位数
  • 注意:n可以为负数,-1代表个位,-2代表十位…取0
    select 12.4224,round(12.4224),round(12.4224,2),round(12.4224,-2);
    
    在这里插入图片描述

1.10 随机数函数

  • 产生一个随机数
  • rand(x),0-1之前的一个随机数
    • x是一个数值,如果加这个参数的话,就代表每次产生额随机种子是一样的
    select rand();
    
    在这里插入图片描述

1.11 数值左边补位函数

  • left : lpad(x,n,符号)左边补
  • x:数值,n:补几位,符号:补什么符号
    select lpad(1,4,0),lpad(2,4,0);
    
    在这里插入图片描述

1.12 数值右边补位函数

  • right : rpad(x,n,符号)右边补
  • x:数值,n:补几位,符号:补什么符号
    select rpad(1,4,0),rpad(2,4,'x');
    
    在这里插入图片描述

1.13 次方函数

  • pow(x,n), x n x^n xn
    select pow(2,3);
    
    在这里插入图片描述

1.14 特殊次方函数e

  • exp(x)
    • x是几次方的参数
    -- 自然数e,2.7182818....
    select exp(1);
    
    在这里插入图片描述

1.15 对数函数

  • ln(x),自然数e的对数
    select ln(exp(1));
    
    在这里插入图片描述

1.16 其他对数函数

  • log(x)
    select log(10,1000),round(log(10,1000));
    
    在这里插入图片描述

1.17 三角函数

  • 三角函数:sin,cos,tan,cot…
    select sin(pi()/6),cos(pi()/6),tan(pi()/6),cot(pi()/6);
    
    在这里插入图片描述

2. 第二类:字符串函数

2.1 计算字符串的长度

  • length(x),x字符串
  • 注意:一个中文汉字占3个字节
    select "asjncsdijcdic",length("asjncsdijcdic"),length("你好");
    
    在这里插入图片描述

2.2 字符串大小写转换

  • lower(x),全部转为小写
  • upper(x),全部转为大写
  • x为字符串
    select "HEllo",lower("HEllo"),upper("HEllo");
    	```
    	![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c582aab030e44a69bf6773290ffc0905.png)
    
    

2.3 字符串反转

  • reverse(x)
    select reverse('abc');
    
    在这里插入图片描述

2.4 字符串合并

  • 就是把字符串连在一起

  • concat(s1,s2,s3…)

    select concat('he','el','lo','你好');
    

    在这里插入图片描述

  • concat_ws(分隔符,s1,s2,s3…),指定分隔符连接

    select concat_ws('-','hello','world');
    

    在这里插入图片描述

2.5 删除空格

  • 删除字符串左右两边多余的空格
  • trim(x),删除左右两边的空格
  • ltrim(x),删除左边的空格
  • rtrim(x),删除右边的空格
    • x为字符串
    select "  你好 hello world   ",trim("  你好 hello world   ") trim,ltrim("  你好 hello world   ") ltrim,rtrim("  你好 hello world   ") rtrim;
    
    在这里插入图片描述

2.6 取左右两边的字符串

  • 左边取: left(x,n),x字符串,n取几位
  • 右边取: right(x,n),x字符串,n取几位
    select "helloworld",left("helloworld",5) lef,right("helloworld",5) rig;
    
    在这里插入图片描述

2.7 取中间的字符串

  • substring(x,n,m)
    • x字符串,n从第几位开始取,m取几位
    select "hello world yes", substring("hello world yes",7,5), substring("hello world yes",7);
    
    在这里插入图片描述

2.8 返回字符串的位置

  • locate(子字符串,字符串)
  • position(子字符串 in 字符串)
    select locate("world","hello world yes"),position("world" in "hello world yes");
    
    在这里插入图片描述

2.9 字符串的替换

  • replace(字符串,要替换的内容,替换的内容)

    select replace("hello world yes","world","世界");
    

    在这里插入图片描述

  • insert(字符串,替换的开始位数,取机位,替换的字符串)

    select insert("hello world yes",7,5,"世界呀");
    

    在这里插入图片描述

2.10 比较字符串

  • 比较两个字符串是不是一样,1代表不一样,0代表一样
  • strcmp(s1,s2)
    select strcmp('hello','Hello'),strcmp('hello','hello'),strcmp('hello ','Hello');
    
    在这里插入图片描述

2.11 重复字符串

  • repeat(x,n),x字符串,n重复的次数
    select repeat('hello',3);
    
    在这里插入图片描述

3. 第三类:时间日期函数

3.1 获取当前的日期

  • current_date()
  • 注意:current_date可以简写为curdate
    select current_date(),curdate();
    
    在这里插入图片描述

3.2 获取当前的时间

  • current_time()
  • 注意:current_time可以简写为curtime
    select current_time(),curtime();
    
    在这里插入图片描述

3.3 获取当前的日期时间

  • now()
  • 注意:now可以写为sysdate()
    select now(),sysdate();
    
    在这里插入图片描述

3.4 获取unix时间戳

  • 时间戳就是从1970-1-1开始到现在过了多少秒
    select unix_timestamp(now()),format(unix_timestamp(now()),0);
    
    在这里插入图片描述

3.5 时间戳转为日期

  • from_unixtime(x),x时间戳
    select from_unixtime(unix_timestamp(now()));
    
    在这里插入图片描述

3.6 获取年月日时分秒季度星期

  • 年:year(date)

    select now(),year(now())
    

    在这里插入图片描述

  • 月:

    • month(date)
    • monthname(date),获取月的英文名
      select now(),month(now()),monthname(now())
      
      在这里插入图片描述
  • 星期:

    • weekday(date),星期一:0…星期日:6
    • dayofweek(date),星期一:0…星期日:1
    • dayname(date),获取星期的英文名
      select weekday(now()),dayofweek(now()),dayname(now())
      
      在这里插入图片描述
  • 获取当前的周数,一般一年有53周

    • week(date),weekofyear(date)
      select now(),week(now()),weekofyear(now())
      
      在这里插入图片描述
  • 获取当前过了多少天

    • dayofyear(date)
      select now(),dayofyear(now())
      
      在这里插入图片描述
  • 获取本月的天

    • day(date),dayofmonth(date)
      select now(),day(now()),dayofmonth(now())
      
      在这里插入图片描述
  • 获取分钟:minute(date)

  • 获取小时:hour(date)

  • 获取季度:quarter(date)

  • 获取秒:second(date)

    select now(),minute(now()) ,hour(now()),quarter(now()),second(now())
    

    在这里插入图片描述

3.7 时间转换为秒

  • time_to_sec()
    select time_to_sec('5:28:33');
    
    在这里插入图片描述

3.8 秒转换为时间

  • sec_to_time()
    select sec_to_time(19713);
    
    在这里插入图片描述

3.9 时间日期的加减

  • 加日期:

    • date_add(date,interval 数字【year/month/hour/minute/second…】)

      • interval 数字 [day_hour/day_minute/day_second/year_month/year_second]
    • adddate(date,interval 数字 【year/month/hour/…】)

      select date_add(now(),interval 1 day),adddate(now(),interval 1 day);
      

      在这里插入图片描述

      -- 加一天五小时33分钟23秒
      select date_add(now(),interval 1 day),date_add(now(),interval "1 5:33:23" day_second);
      

      在这里插入图片描述

  • 减日期:

    • date_sub(date,interval 数字 【year/month/hour/minute/second…】)
      • interval 数字[day_hour/day_minute/day_second/year_month/year_second]
      select now(), date_sub(now(),interval 1 day);
      
      在这里插入图片描述
  • 时间加减

    • addtime(),time_add()
    • subtime(),time_sub()
  • inerval 关键词

    select '2024-7-18' + interval 1 day,'2024-7-18' + interval '2 2' day_hour,'2024-7-18' - interval '2 2' day_hour
    

    在这里插入图片描述

3.10 两个日期相减

  • datediff(日期1,日期2),得到的是天数
    select datediff('2024-1-30','2024-1-27 7:23:34');
    
    在这里插入图片描述

3.11 日期格式化

  • date_format(date,格式化形式)
    select date_format(now(),"%Y%m");
    
    在这里插入图片描述

4. 第四类:聚类函数

函数含义
min()最小值
max()最大值
avg()平均值
sum()求和
count()计数
select 
	c_id,
	max(s_score) as max_score,
	min(s_score) as min_score,
	avg(s_score) as avg_score,
  sum(s_score) as sum_score,
	count(s_score) as count_score
from 
	score
group by
	c_id

在这里插入图片描述

5. 第五类:逻辑判断函数

5.1. if

  • if(判断,判断成立返回的值,不成立返回的值)
    SELECT
    	a.*,
    	if(a.s_score>=60,"及格","不及格") 
    FROM
    	score a
    	
    
    在这里插入图片描述

5.2 ifnull

  • ifnull(x,y),x为空时返回y,x不为空返回x本身
  • 例1
    select ifnull(null,100);
    
    在这里插入图片描述
  • 例二
    SELECT
    	a.*,
    	ifnull(b.s_score,0) 
    FROM
    	student a
    LEFT JOIN
    	score b
    ON
    	a.s_id=b.s_id;
    
    在这里插入图片描述

5.3 case when

  • 语法格式
    case when 判断 then 判断成立返回的值
    when 判断 then 判断成立返回的值
    when 判断 then 判断成立返回的值
    when 判断 then 判断成立返回的值
    ...
    else 判断成立返回的值
    end
    
  • 例子
    SELECT
    	a.*,
    	case when a.s_score<60 then "不及格"
    	when a.s_score<80 then "中等"
    	ELSE "优秀"
    	end as 成绩分组
    FROM
    	score a;	
    

在这里插入图片描述

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

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

相关文章

【网络工具】Charles 介绍及环境配置

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/iAmAo &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会整理一些工作或学习中用到的工具介绍给大家~ &#x1f4d8;Charles 系列其它文章&#xff1a;【网络…

PySide在Qt Designer中使用QTableView 显示表格数据

在 PySide6 中&#xff0c;可以使用 Qt Model View 架构中的 QTableView 部件来显示和编辑表格数据。 1、创建ui文件 在Qt Designer中新建QMainWindow&#xff0c;命名为csvShow.ui。QMainWindow上有两个部件&#xff1a;tableview和btn_exit。 2、使用pyuic工具将ui文件转换为…

路由上传一个ui_control参数(uint32类型)控制页面UI显隐

前言&#xff1a;传一个uint32类型的值&#xff0c;通过 按位或操作符&#xff08;|&#xff09;来设置ui_control的值&#xff0c;通过按位与操作符&#xff08;&&#xff09;来检测是否显示或隐藏 简单介绍一下两个概念&#xff1a; 按位与操作符和按位或操作符都是二进…

LeetCode-随机链表的复制

. - 力扣&#xff08;LeetCode&#xff09; 本题思路&#xff1a; 首先注意到随机链表含有random的指针&#xff0c;这个random指针指向是随机的&#xff1b;先一个一个节点的拷贝&#xff0c;并且把拷贝的节点放在拷贝对象的后面&#xff0c;再让拷贝节点的next指向原链表拷贝…

申贷时,被大数据风控拒贷有哪些原因呢?

很多人特别是从事过金融行业的人来说&#xff0c;大数据风控相信都不陌生&#xff0c;因为现在的银行和机构对申贷人的大数据信用看的越来越重要&#xff0c;已然成看贷前审查的重要依据&#xff0c;那申贷时&#xff0c;被大数据风控拒贷有哪些原因呢?本文就与大家一起探讨一…

codeforces 1862A

文章目录 1. 题目链接2. 题目代码正确代码 3. 题目总结学习 1. 题目链接 Gift Carpet 2. 题目代码 正确代码 #include<iostream> #include<vector> using namespace std; char letterTable[21][21]; int main(){int testCase;cin >> testCase;int row;int …

如何培养企业内部的大客户管理能力

去年年底&#xff0c;A公司的销管老王因身体抱恙休了长假&#xff0c;销售小张在接手老王负责的某集团型大客户时却犯了难&#xff1a;双方历史成交的记录详情无从查起&#xff1b;维护客情关系又不知道该去拜访谁、哪位领导关心哪些信息&#xff1b;甚至集团客户各公司的跟进节…

【Python进阶】正则表达式、pymysql模块

目录 一、正则表达式的概述 1、基本介绍 2、快速使用re模块 二、正则的常见规则 1、匹配单个字符 2、原始字符串 3、匹配多个字符 4、匹配开头和结尾 5、匹配分组 三、Python与MySQL交互 1、pymysql模块的安装 2、pymysql的操作步骤 3、connection对象 4、cursor…

MongoDB教程(九):java集成mongoDB

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、环境准…

【Agent】信息提取场景

文章目录 场景说明超参数调整top_ktop_ptemparetureresponse_format 提示词优化提取任务通用提示词模板防止badcase的提示词特殊符合划分待提取内容 提取的后处理评估提取性能Experiment1、通过符号学定位原文信息1.1 首位字符在原文中的index1.2 首尾N个字符&#xff0c;中间字…

【计算机毕设论文】基于SpringBoot薪资管理系统

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】关注并且私信我 一. 功能介绍 &#x1f50d; 员工信息管理 - 系统可以轻松添加、编辑或删除员工信息&#xff…

操作系统基础 (二)

目录 六. 运行机制两种指令两种CPU状态两种程序 七. 中断和异常中断的作用中断类型中断机制基本原理 八. 系统调用定义系统调用与库函数系统调用实现的功能系统调用过程 九. OS体系结构内核分层结构模块化外核 十. 系统引导相关的数据磁盘数据主存数据 系统引导过程总述 十一. …

域泛化(Domain Generalization)

仓库&#xff1a;https://github.com/jindongwang/transferlearning 综述&#xff1a;https://arxiv.org/pdf/2103.03097、https://arxiv.org/pdf/2103.02503 1.问题及解决方案 出发点&#xff1a;需要解决domain shift、out-of-distribution (OOD)问题 解决方案&#xff1a;绕…

常用优秀内网穿透工具(实测详细版)

文章目录 1、前言2、安装Nginx3、配置Nginx4、启动Nginx服务4.1、配置登录页面 5、内网穿透5.1、cpolar5.1.1、cpolar软件安装5.1.2、cpolar穿透 5.2、Ngrok5.2.1、Ngrok安装5.2.2、随机域名5.2.3、固定域名5.2.4、前后端服务端口 5.3、NatApp5.4、Frp5.4.1、下载Frp5.4.2、暴露…

SpringMVC注解全解析:构建高效Web应用的终极指南 (下)

一. 引言 在上篇文章中&#xff0c;我们介绍了几个重要的SpringMVC注解&#xff1a; SpringBootApplication&#xff1a;Spring Boot项目的启动类注解。RequestMapping&#xff1a;用于映射URL到控制器类或方法&#xff0c;支持多种请求方式。RequestParam&#xff1a;用于绑…

长难句打卡7.15

The trend was naturally most obvious in those areas of science based especially on a mathematical or laboratory training, and can be illustrated in terms of the development of geology in the United Kingdom 这一趋势自然在以数学或实验室训练为基础的科学领域里…

新版本cesium编译1.103之后的版本

cesium1.1之后的版本文件结构域1.1之前的版本有了很大的差别&#xff0c;源码也全部移到了packages目录中。有很多依赖包没有写在根目录的package.json文件中。npm i 后直接编译会保持。 cesium源码git https://github.com/CesiumGS/cesium 1、添加缺少的包&#xff0c;缺少的…

Java 8的变革:函数式编程和Lambda表达式探索

文章目录 一、函数接口二、Lambda表达式简介三、Lambda表达式外部参数四、Lambda范例五、Runnable Lambda表达式 一、函数接口 函数接口是一个具有单个抽象方法的接口&#xff0c;接口设计主要是为了支持 Lambda 表达式和方法引用&#xff0c;使得 Java 能更方便地实现函数式编…

【论文速读】| TCSR-SQL:面向表内容感知的自检索文本到SQL方法

本次分享论文&#xff1a;TCSR-SQL: Towards Table Content-aware Text-to-SQL with Self-retrieval 基本信息 原文作者&#xff1a;Wenbo Xu, Liang Yan, Peiyi Han, Haifeng Zhu, Chuanyi Liu, Shaoming Duan, Cuiyun Gao, Yingwei Liang 作者单位&#xff1a;哈尔滨工业大…

如何使用 Containerfile/Dockerfile 构建 .net 镜像?

Podman 简介 Podman 是 Red Hat 开发的一款容器管理工具&#xff0c;它允许用户在没有守护进程的情况下运行、构建、管理和推送容器。Podman 是一个无守护进程的容器引擎&#xff0c;这意味着它不需要一个持续运行的后台进程来管理容器&#xff0c;这与 Docker 的守护进程模式…