[MySQL]系统函数

news/2024/11/6 16:06:29/

聚合函数

     聚合函数是纵向计算的函数,一般在SELECT语句中使用

函数描述
COUNT()统计指定列不为NULL的记录行数
MAX()计算指定列的最大值,字符串类型列使用字符串排序运算
MIN()计算指定列的最小值,字符串类型列使用字符串排序运算
SUM()计算指定列的数值和,如果列类型不是数值类型,计算结果为0
AVG()计算指定列的平均值,如果列类型不是数值类型,计算结果为0

     NULL值不参与所有的聚合函数计算,写语:

SELECT 聚合函数(字段列表) FROM 表名 ;

数值型函数

    MySQL的数值型函数与Java中的Math类里的方法类似。

函数名称作 用
ABS求绝对值
SQRT求二次方根
MOD求余数
CEIL、CEILING返回不小于参数的最小整数,即向上取整
FLOOR向下取整,返回值转化为一个bigint数据
RAND生成一个0~1之间的随机数,传入整数参数,用来产生重复序列
ROUND对所传参数进行四舍五入
SIGN返回参数的符号
POW、POWER返回所传参数的次方的结果值
SIN求正弦值
ASIN求反正弦值,与函数 SIN 互为反函数
COS求余弦值
ACOS求反余弦值,与函数 COS 互为反函数
TAN求正切值
ATAN求反正切值,与函数 TAN 互为反函数
COT求余切值
# 值可以是一个数值类型的列# abs(值)# MOD(被除数,除数)# ROUND(值)/ROUND(值,小数位)
# 小数位标识精确到几位小数,不设置则默认为0# sign(值) 返回参数符号: 正数: 1 负数:-1 零:0# POW(底数,指数)
# 底数可以是整数或浮点数
# 指数可以是整数、浮点数、正数、负数或零

字符串函数

函数名称作 用
LENGTH计算字符串长度函数,返回字符串的字节长度
CONCAT合并字符串函数,返回结果为连接参数产生的字符串,参数可以是一个或多个
INSERT替换字符串函数
LOWER将字符串中的字母转换为小写
UPPER将字符串中的字母转换为大写
LEFT从左侧字截取符串,返回字符串左边的若干个字符
RIGHT从右侧字截取符串,返回字符串右边的若干个字符
TRIM删除字符串左右两侧的空格
REPLACE字符串替换函数,返回替换后的新字符串
SUBSTRING截取字符串,返回从指定位置开始的指定长度的字符换
REVERSE字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串
# 字符串拼接 concat(值1, 值2,...)# 替换指定个数的字符:
#INSERT(值,开始位置,个数,替换的值)
SELECT INSERT('helloword',2,2,'ha');
SELECT INSERT(ename,1,1,'') FROM emp;# left(值,长度) 从左侧字截取符串,返回字符串左边的若干个字符
SELECT LEFT('hello world',2);# right(值,长度) 从右侧字截取符串,返回字符串左边的若干个字符
SELECT RIGHT('hello world',2);# substring(列名,开始位置,[长度]) 
# 截取字符串,返回从指定位置开始的指定长度的字符换
SELECT SUBSTRING('hello world',2,2);
SELECT SUBSTRING('hello world',2);# replace(值,被替换的内容,新的内容)
SELECT REPLACE('hello world ll','ll','dd');

日期和时间函数

函数名称作 用
CURDATE、CURRENT_DATE返回当前系统的日期值
CURTIME、CURRENT_TIME返回当前系统的时间值
NOW、SYSDATE返回当前系统的日期和时间值
MONTH获取指定日期中的月份
MONTHNAME获取指定日期中的月份英文名称
DAYNAME获取指定曰期对应的星期几的英文名称
DAYOFWEEK返回指定日期在一周里是第几天
WEEK获取指定日期是一年中的第几周
DAYOFYEAR获取指定曰期是一年中的第几天
DAYOFMONTH获取指定日期是一个月中是第几天
YEAR获取当前年份
ADDTIME在原始时间上添加指定的时间
SUBTIME在原始时间上减去指定的时间
DATEDIFF获取两个日期之间间隔,返回参数 1 减去参数 2 的值
DATE_FORMAT格式化指定的日期,根据参数返回指定格式的值
WEEKDAY获取指定日期在一周内的对应的工作日索引
LAST_DAY获取指定日期这个月的最后一天的日期

date_format的format参数:

%a 缩写星期名 
%b 缩写月名 
%c 月,数值 
%D 带有英文前缀的月中的天 
%d 月的天,数值(00-31) 
%e 月的天,数值(0-31) 
%f 微秒 
%H 小时 (00-23) 
%h 小时 (01-12) 
%I 小时 (01-12) 
%i 分钟,数值(00-59) 
%j 年的天 (001-366) 
%k 小时 (0-23) 
%l 小时 (1-12) 
%M 月名 
%m 月,数值(00-12) 
%p AM 或 PM 
%r 时间,12-小时(hh:mm:ss AM 或 PM) 
%S 秒(00-59) 
%s 秒(00-59) 
%T 时间, 24-小时 (hh:mm:ss) 
%U 周 (00-53) 星期日是一周的第一天 
%u 周 (00-53) 星期一是一周的第一天 
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用 
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用 
%W 星期名 
%w 周的天 (0=星期日, 6=星期六) 
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用 
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用 
%Y 年,4 位 
%y 年,2 位

 

#得到年 year(值)
SELECT YEAR(NOW());
SELECT YEAR(hiredate) FROM emp;
SELECT YEAR('2012-12-12');#得到月份 month(值)
SELECT MONTH(NOW());#日期相加 adddate(值, 天数)  
SELECT ADDDATE(NOW(),10)#日期相减 subdate()
SELECT SUBDATE(NOW(),10);#计算两个日期的相隔多少天  datediff(日期1,日期2)  日期1-日期2
SELECT DATEDIFF('2012-12-12','2011-11-1');#DATE_FORMAT(日期,格式字符串) 格式化字符串
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日 %H:%i:%s');#LAST_DAY(日期/日期列名) 查找指定日期这个月的最后一天的日期
SELECT LAST_DAY(NOW());

流程控制函数

函数名称作用
IF判断,流程控制
IFNULL判断是否为空
CASE搜索语句
#if函数:if else的效果 if(条件,结果1,结果2)
SELECT IF(comm IS NULL,'没有奖金','有奖金') FROM emp;# ifnull(被检测值,默认值)函数检测是否为null,如果为null,则返回指定的值,否则返回原本的值
#统计每个员工的月收入
SELECT sal + IFNULL(comm,0) FROM emp;#case when 条件 then 结果 1 else 结果 2 end; 可以有多个 when
#查询每个员工的姓名,薪水,以及工资情况
# 情况: sal>=2500 高工资  2500>sal>=1500  中等工资  sal<1500 低工资
SELECT ename,sal,CASE WHEN sal >=2500 THEN '高工资'WHEN sal >=1500 THEN '中等工资'
ELSE '低工资' END 薪水情况 FROM emp;

http://www.ppmy.cn/news/1544851.html

相关文章

防重方案-订单防重方案笔记

订单防重设计 订单重复提交概念解决方案前端防重机制后端防重机制利用Token机制基于数据库的唯一索引 Token机制方案介绍 其他 订单重复提交概念 重复提交指&#xff0c;连点按钮进行重复提交操作&#xff0c;不包括刷新后的重新下单&#xff0c;重新下单已非同一订单的概念。…

DolphinScheduler资源中心

DolphinScheduler资源中心 1 简介 资源中心通常用于上传文件、UDF 函数和任务组管理。 standalone 环境可选择本地文件目录作为上传文件夹&#xff08;无需Hadoop部署&#xff09; 也可选择上传到 Hadoop 或 MinIO 集群。此时需要有 Hadoop&#xff08;2.6&#xff09;或 MinIO…

React.js教程:从JSX到Redux的全面解析

文章目录 一、介绍二、react脚手架三、jsx语法和react组件jsx的基本语法jsx的行内样式jsx的类名classNameif条件渲染map循环渲染创建组件方法 四、可视区渲染 (React- virtualized)五、React-redux 一、介绍 javascript库&#xff0c;起源于Facebook的内部项目&#xff0c;类似…

【那些年踩过的坑-前端篇- Mac版本】Mac电脑如何升级node.js

Mac电脑如何升级node.js 一 、mac可以用node.js的多版本管理器n来升级和切换二、使用Homebrew 一 、mac可以用node.js的多版本管理器n来升级和切换 mac可以用node.js的多版本管理器n来升级和切换&#xff0c;命令如下&#xff1a; sudo npm cache clean -f //清除node.js的ca…

andrular输入框input监听值传递

效果图&#xff1a; step1: E:\projectgood\ajnine\untitled4\src\app\apple\apple.component.html <button mat-button (click)“openDialog()”>Open dialog step2: E:\projectgood\ajnine\untitled4\src\app\apple\apple.component.ts import {Component, inject}…

Perl 环境安装

Perl 环境安装 Perl 是一种广泛使用的高级、通用、解释型、动态编程语言。它最初由 Larry Wall 在 1987 年设计,现在由 Perl 5 和 Perl 6 两个主要版本组成。Perl 适合于多种编程任务,包括系统管理、Web 开发、网络编程、游戏开发等。在开始使用 Perl 进行编程之前,您需要在…

如何更新已经发布的 NPM 组件库

要更新已经发布的 NPM 组件库&#xff0c;可以按照以下步骤操作&#xff1a; 更新版本号&#xff1a; 每次发布新的版本&#xff0c;都需要更新 package.json 中的 version 字段。NPM 使用 语义化版本 规则&#xff0c;即格式为 major.minor.patch&#xff0c;例如 1.0.1。版本…

(八)JavaWeb后端开发——Tomcat

目录 1.Web服务器概念 2.tomcat 1.Web服务器概念 服务器&#xff1a;安装了服务器软件的计算机服务器软件&#xff1a;接收用户的请求&#xff0c;处理请求&#xff0c;做出响应web服务器软件&#xff1a;在web服务器软件中&#xff0c;可以部署web项目&#xff0c;让用户通…