当前位置: 首页 > news >正文

mysql中提供的函数

文章目录

    • 1.聚合函数
    • 2.字符串函数
    • 3.数值函数
    • 4.日期函数
    • 5.流程函数

MySQL 是一个功能强大的关系型数据库管理系统,其中包含了丰富的内置函数,用于处理各种数据操作和查询。这些函数可以分为多种类型,包括字符串函数、数值函数、日期和时间函数、聚合函数以及控制流函数。本文将介绍这些常用的 MySQL 函数,帮助您更好地利用 MySQL 进行数据操作和分析。

1.聚合函数

介绍:将一列数据作为一个整体,进行纵向计算 。通常与GROUP BY一起使用。

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和

语法(不能用在where后):

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

注意 : NULL值是不参与所有聚合函数运算的。

2.字符串函数

MySQL中内置了很多字符串函数,常用的几个如下:

函数功能
CONCAT (S1,S2,…Sn)字符串拼接,将S1, S2, …, Sn拼接成一个字符串
LOWER (str)将字符串str全部转为小写
UPPER (str)将字符串str全部转为大写
LPAD (str,n,pad)左填充,用字符串pad对str的左边进行填充,达到n个字符长度
RPAD (str,n,pad)右填充,用字符串pad对str的右边进行填充,达到n个字符长度
TRIM(str)去掉字符串头部和尾部的空格
SUBSTRING (str, start, len)返回从字符串str从start位置起的len个长度的字符串

3.数值函数

常见的数值函数如下:

函数功能
CELL(x)向上取整,用于将浮点数x向上取整到最接近的整数
FLOOR(x)向下取整,用于将浮点数x向下取整到最接近的整数
MOD(x, y)返回除法余数,即x除以y的余数
RAND()返回一个在0到1之间的随机浮点数
ROUND(x, y)返回四舍五入后的浮点数,保留y位小数

4.日期函数

常见的日期函数如下:

函数功能
CURDATE()返回当前日期
CURTIME()返回当前时间
NOW()返回当前日期和时间
YEAR(date)获取指定date的年份
MONTH(date)获取指定date的月份
DAY(date)获取指定date的日期
DATE_ADD(date, INTERVAL expr type)返回一个日期/时间值加上一个时间间隔expr后的时间值
DATEDIFF(date1, date2)返回起始时间date1和结束时间date2之间的天数

5.流程函数

流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。

函数功能描述示例
IF(condition, true_value, false_value)如果条件condition为真,则返回true_value;否则返回false_valueIF(value, t, f)
IFNULL(expression1, expression2)如果expression1不为空,则返回expression1;否则返回expression2IFNULL(value1, value2)
CASE WHEN [condition] THEN [result] … ELSE [default] END根据一系列条件进行判断,如果条件为真,则返回对应的结果;如果所有条件都不为真,则返回默认值CASE WHEN [val1] THEN [res1] … ELSE [default] END
CASE [expr] WHEN [val1] THEN [res1] … ELSE [default] END如果expr的值等于val1,则返回res1;否则返回default默认值CASE [expr] WHEN [val1] THEN [res1] … ELSE [default] END

注意下面这两个sql是相等的:

CASE WHEN a = 1 THEN [result]ELSE [default] END;
CASE a WHEN 1 THEN [res1]ELSE [default] END

并且 WHEN THEN 可以有多个:

CASE `subject` WHEN '数学'  THEN score1 WHEN '第二个When' THEN score2 ELSE 0 END

在标准SQL中,使用=来进行相等比较,而不是==。MySQL遵循这一标准,因此推荐使用=来保持与其他数据库系统的一致性。

由于流程语句中经常出现条件判断,所以提供如下附录(SQL 中的比较运算符和逻辑运算符)。

比较运算符及其功能

运算符功能
>大于
>=大于或等于
<小于
<=小于或等于
=等于
<>!=不等于
BETWEEN ... AND ...检查值是否在指定范围内(包含边界值)
IN (...)检查值是否在指定的列表中(多选一)
LIKE 占位符使用占位符进行模糊匹配。_ 匹配单个字符,% 匹配任意个字符
IS NULL检查值是否为 NULL
REGEXPRLIKE正则表达式匹配

逻辑运算符及其功能:

运算符功能
AND&&并且 (多个条件同时成立) ,与(逻辑与)
OR||或者 (多个条件任意一个成立) ,或(逻辑或)
NOT!非 (条件不成立) ,非(逻辑非)
XOR异或(逻辑异或)

在 MySQL 中,XOR 运算符可以用来连接两个布尔条件,只有当这两个条件中有且仅有一个为 TRUE 时,结果才为 TRUE。如果两个条件都是 TRUE 或都是 FALSE,结果为 FALSE。在进行其他判断时,除了针对 10 之间返回 1,其他都会返回 0。

在其他编程语言中,异或运算符的符号通常是 ^,但在 SQL 中(特别是 MySQL),你需要使用 XOR 关键字。因为 ^|&一样在 MySQL 中是按位运算。

相关文章:

  • 独孤思维:长线副业,越做越香
  • C语言常见字符函数和字符串函数精讲
  • connect的非阻塞模式
  • Discourse 如何通过终端工具访问 PGSQL
  • 多模态
  • Android APP 音视频(02)MediaProjection录屏与MediaCodec编码
  • java找不到符号解决办法
  • 《Programming from the Ground Up》阅读笔记:p75-p87
  • css更改图片颜色
  • ReadAgent,一款具有要点记忆的人工智能阅读代理
  • Vue3点击按钮实现跳转页面并携带参数
  • openFeign配置okhttp
  • 63.利用PEB获取模块列表
  • Hive小文件合并
  • DDoS 究竟在攻击什么?
  • 《剑指offer》分解让复杂问题更简单
  • docker容器内的网络抓包
  • Iterator 和 for...of 循环
  • java2019面试题北京
  • JavaScript异步流程控制的前世今生
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • MySQL主从复制读写分离及奇怪的问题
  • nfs客户端进程变D,延伸linux的lock
  • Python十分钟制作属于你自己的个性logo
  • socket.io+express实现聊天室的思考(三)
  • Terraform入门 - 1. 安装Terraform
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 动态魔术使用DBMS_SQL
  • 浮现式设计
  • 诡异!React stopPropagation失灵
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 实习面试笔记
  • 使用Swoole加速Laravel(正式环境中)
  • 我这样减少了26.5M Java内存!
  • 无服务器化是企业 IT 架构的未来吗?
  • 白色的风信子
  • 仓管云——企业云erp功能有哪些?
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​​​​​​​​​​​​​​Γ函数
  • ​io --- 处理流的核心工具​
  • ​批处理文件中的errorlevel用法
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (zt)最盛行的警世狂言(爆笑)
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二)Linux——Linux常用指令
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (九)c52学习之旅-定时器
  • (六)c52学习之旅-独立按键
  • (四)事件系统
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)【Hibernate总结系列】使用举例
  • (转)jQuery 基础