MySQL函数运用

article/2025/10/20 0:42:41

目录

一,函数的定义 

二,常用函数

  

三,字符串函数

四, 数学函数

五,判断函数

六、合并(union)


一,函数的定义 

 1.类似Java定义方法


   2.可以带参数


   3.必须有返回值(一行一列) ,重点:java方法可以没有返回值,数据库函数必须要有返回值
      select max(score) from sc


   4.函数可以嵌套到sql语句中
     注:存储过程则不可以


   5.函数可嵌套调用  round(avg)
 

二,常用函数

 (1)日期函数

案例一:

1.日期函数1) NOW():获取当前日期和时间select now()2) DAY():获取日期中的天select date(NOW())3) MONTH():获取日期中的月select MONTH(NOW())4) YEAR():获取日期中的年select YEAR(NOW())5) 日期转换函数DATE_FORMAT()/STR_TO_DATE()select NOW(),DATE_FORMAT(now(),'%Y年%m月%d日')DATE_FORMAT():将日期转换成字符串STR_TO_DATE():将字符串转换成日期提示:<区分大小写>select STR_TO_DATE('2022-09-08','%Y-%m-%d')

 

《获取当前时间效果图》

 

《日期转换效果图》 

 

 

 

案例二: 

  查询各学生的年龄,只按年份来算select s.*,year(now())-YEAR(s.sage) from t_student s按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一select s.*,year(now())-YEAR(s.sage)+if(month(NOW())<MONTH(s.sage),-1,0) from t_student s查询本月过生日的学生select *from t_student where month(now()) = month(sage)select * from t_student查询下月过生日的学生(当前月加1)(1)date_add(NOW(), interval 1 MONTH)select *from t_student where month(now())+1 = month(sage)(2)select DATE_ADD(NOW(),interval 1 month)select *from t_student where DATE_ADD(NOW(),interval 1 month) = month(sage)

效果图参考

 

  

三,字符串函数

案例1:

1) UPPER()/LOWER():大小写互转select UPPER('afsgafsas')select LOWER('HJHKHKHKHK')2) REPLACE():搜索并替换字符串中的子字符串SELECT uuid(),REPLACE((uuid()),'-','');3) SUBSTRING():从具有特定长度的位置开始的最一个子字符串select SUBSTRING('xiong er is a xiong',1,5)select SUBSTRING('xiong er is a xiong',5)

效果图参考

 

 

案例2:

 4) TRIM():去除前后空格5) LENGTH():获取字符串长度select LENGTH('xiong er is a xiong'),LENGTH(TRIM( ' xiong er is a xiong '))

 

效果图

 

 

 

四, 数学函数

3.数字函数1)FLOOR:向下取整2)CEIL: 向上取整3)ROUND:四舍五入select FLOOR(-3.14), CEIL(-3.14),CEIL(-3.14),CEIL(0.98);

效果图 

 

五,判断函数

(1).IF(expr,v1,v2)


   如果expr是TRUE则返回v1,否则返回v2 -----(行列转换)
     需求:每一个学生的语数外分数

     
     判断:如果是当前分数就去当前分数,不是则用0代替

     select s.sid,s.sname,SUM(if(sc.cid='01',sc.score,0)) 语文,SUM(if(sc.cid='02',sc.score,0)) 数学,SUM(if(sc.cid='03',sc.score,0)) 英语from t_student s left JOIN t_score sc on s.sid=sc.sid GROUP BY s.sid,s.sname

 

 

 (2)IFNULL(v1,v2)


   如果v1不为NULL,则返回v1,否则返回v2

语法: CASE expr WHEN v1 THEN r1 [WHEN v2 THEN v2] [ELSE rn] END 
 
 如果expr等于某个vn,则返回对应位置THEN后面的结果,如果与所有值都不想等,则返回ELSE后面的rn

    select s.sid,s.sname,SUM(case when sc.cid = '01' THEN sc.score end) 语文,SUM(case when sc.cid = '02' THEN sc.score end) 数学,SUM(case when sc.cid = '03' THEN sc.score end) 英语from t_student s left JOIN t_score sc on s.sid=sc.sid GROUP BY s.sid,s.sname

 

 

六、合并(union)

(1) UNION:将所有的查询结果合并到一起,然后去除掉相同的记录


 (2) UNION ALL:将所有的查询结果合并到一起,不会去除掉相同的记录

       前提条件:结果集列数个数相同,列的类型还要相同或是兼容
     

 

只取两条数据
select 1,'sa',18
union
select 2,'sa',18
union
select 2,'sa',18取所有数据
select 1,'sa',18
union all
select 2,'sa',18
union all
select 2,'sa',18


http://chatgpt.dhexx.cn/article/kC3CPPus.shtml

相关文章

MYSQL 函数

1.IF(Condition,A,B)Condition 为true 返回A 否则返回B 2.IFNULL(fieldA,fieldB)当字段fieldA是NULL时取fieldB&#xff0c;不是NULL时取fieldA的值nullif(exp1,exp2)如果exp1与exp2相等&#xff0c;则返回null&#xff0c;否则返回exp1 3.GROUP_CONCAT()该函数是将多条结果集变…

MySQL函数的使用

ABS(X) :返回x的绝对值 MOD(N,M):表示%,返回N被M除的余数 floor(X) :返回不大于X的最大整数值&#xff0c;向下取整 round(X) :四舍五入取整 distinct:distinct用于返回唯一不同的值。目的是去重 ifNull(X,Y)&#xff1a;查询时判断X是否为空,为空则使用默认值Y group_concat(X…

MySQL常用函数

MySQL常用函数 一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制&#xff08;OCT返回八进制&#xff0c;HEX返回十六进制&#xff09;CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e&#xff08;自然对数的底&#xff09;的x次方FLOOR(x) 返回小于x的最大整数…

JKD动态代理

一、说明 在Java的动态代理机制中&#xff0c;有两个重要的类和接口&#xff0c;一个是InvoInvocationHandler&#xff08;接口&#xff09;、Proxy&#xff08;类&#xff09;&#xff0c;这一个类和接口是我们动态代理所必须用到的。 优点&#xff1a; 对于实现了接口的类&…

JDO

如何用JDO开发数据库应用 &#xff08;本文的版权属作者本人&#xff0c;欢迎转载&#xff0c;但必须注明出处和原作者&#xff09; 本文将介绍如何使用Sun公司的最新《Java Data Objects 》规范来进行基于数据库的简单应用程序的开发&#xff0c;从而使读者对JDO有一个直接的感…

亲测Linux服务器安装JKD操作流程

下载地址&#xff1a; 链接: https://pan.baidu.com/s/14aOlotFFQy6KQ05T1t2iyw 提取码: 67t4 青华大学&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/Adoptium/8/jdk/x64/linux/ 1.添加Linux命令&#xff08;默认没有上传命令&#xff09; yum install lrzsz 2.查看JKD是…

J D B C

文章目录 前言一、jdbc是什么&#xff1f;二、使用步骤三、sql注入三、封装四、ORM(object rational mapping)五、日期类六&#xff0c;事务七&#xff0c;三层架构八&#xff0c;连接池 前言 一、jdbc是什么&#xff1f; JDBC&#xff08;Java DataBase Connectivity,java数…

jkd环境配置

这里写目录标题 1.下载jdk2. 安装jdk3.配置环境4.验证 1.下载jdk https://www.oracle.com/java/technologies/javase-jdk16-downloads.html&#xff08;下载链接&#xff09; 2. 安装jdk 只需要自定义安装路径&#xff0c;其余不动 3.配置环境 我的电脑&#xff08;右键&a…

JKD+Tomcat+Eclipse基础配置

目录 一、JDK环境变量配置&#xff1a;java&#xff08;jdk需安装&#xff0c;根据向导安装&#xff0c;无需修改&#xff09; 二、检查是否配置成功: 三、Tomcat环境变量配置&#xff1a;java&#xff08;jdk需安装&#xff09;和Tomcat&#xff08;需解压&#xff09; 四、…

Linux之jkd、tomcat、mysql安装

目录 一、安装JDK1、将jdk解压到/opt下2、配置环境变量1&#xff09;vi /etc/profile2&#xff09;在最后面配置JDK环境变量3&#xff09;设置环境变量生效4&#xff09;检查JDK环境变量 二、安装Tomcat1.解压Tomcat2.配置环境变量1&#xff09;vi /etc/profile2&#xff09;在…

在java中jkd中文意思_Java JDK是什么意思?有什么作用?

下面我们介绍&#xff0c;Windows7 和 Windows10下载安装JDK与JDK环境配置的方法。 (1)下载JDK(获取【JDK8、11、15全系列版本】【Java高级程序员学习路线图】【0基础Java视频资料】加播妞 &#xff1a;2217622915) https://www.oracle.com/technetwork/java/javase/overview/i…

在Linux中安装JKD(详细教学)

一&#xff0c;首先在官网下载Linux版JKD 官网&#xff1a;Oracle | Cloud Applications and Cloud Platform 二&#xff0c;通过xftp上传工具将jdk上传到linux中 三&#xff0c;将JKD解压到指定文件夹 linux命令&#xff1a; tar -xvf 压缩包名称.tar.gz -C /usr/lib/jvm …

jkd的安装与配置

jkd的安装与配置 下载JDK 下载地址,点击进入: www.oracle.com/technetwork/java/javase/downloads/index.html下载JDK——进入下载主页 点击下载JDK,会出现图1-9所示的下载列表界面。首先,点击”Accept License Agreement”,然后选择对应的版本,下载即可。 下载JDK——…

Java学习第一天:jkd安装、环境变量配置和第一个程序

第一天笔记 jdk的安装 下载jdk jdk是Java开发环境。其中包括了Java编译器、Java运行工具、Java生成文档工具、Java打包工具等。Java开发环境中自带了一个Java运行环境运行工具JRE。因此&#xff0c;安装过程中不需要安装JRE了。 到Oracle官网中下载&#xff0c;甲骨文官网地址…

java getopt_sys.argv和getopt.getopt()的用法

Python中sys.argv是命令行参数从程序外部传值的的一种途径&#xff0c;它是一个列表&#xff0c;列表元素是我们想传进去的的新参数&#xff0c;所以可以用索引sys.argv[]来获得想要的值。因为一个写好的程序一般封装好了&#xff0c;直接在编辑软件里运行就行了&#xff0c;但…

命令行参数解析函数 getopt、getopt_long

getopt 函数在头文件 <unistd.h> 中&#xff0c;它可以解析我们传入的命令行参数。 可以实现类似 gcc -o 、rm -rf 等命令。 man 3 getopt 。在线版&#xff1a;http://man.he.net/?topicgetopt&section3 #include <unistd.h>int getopt(int argc, char * co…

C/C++ 命令解析:getopt 方法详解和使用示例

一、简介 getopt() 方法是用来分析命令行参数的&#xff0c;该方法由 Unix 标准库提供&#xff0c;包含在 <unistd.h> 头文件中。 二、定义 int getopt(int argc, char * const argv[], const char *optstring);extern char *optarg; extern int optind, opterr, optop…

*args和**kwargs

*args和**kwargs的区别 首先*args和**kwargs的区别主要是*和**的区别&#xff0c;与变量名args和kwargs无关&#xff0c;也可以命名成*cat和**dog&#xff1b;*args接收不带变量名的变量&#xff0c;**kwargs接收带变量名的变量。*args和**kwargs可以共同使用&#xff0c;但是顺…

python中argparse模块关于 parse_args() 函数详解(全)

目录 前言1. 函数讲解2. 基本用法3. 实战讲解 前言 原理&#xff1a;命令行解析使用argparse包作用&#xff1a;命令行传参赋值 可用在机器学习深度学习 或者 脚本运行等 了解这个函数需要了解其背后的原理以及具体参数 1. 函数讲解 在深度学习模型框架中几乎都有的模块 浓…

java打印args的内容_解决java main函数中的args数组传值问题

这几天面试中有遇到关于main数组中的args数组传值的问题,一般是从命令提示符中传值,也可以直接在java代码中赋值。 而且这个数组的长度是动态的,根据传值的个数确定数组的长度。 1.从命令提示符中传值 我在桌面新建了一个文本文档重命名为testmain.java,代码如下 public cl…