MySQL函数讲解(谓词、CASE)

这篇具有很好参考价值的文章主要介绍了MySQL函数讲解(谓词、CASE)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

MySQL常见函数

字符串函数 进行字符串操作的函数

算术函数 进行数值计算的函数

日期函数 进行日期操作的函数

转换函数 进行数据类型和值转换的函数

流程函数  进行条件删选

聚合函数 进行数据聚合的函数

谓词 一般用于条件判断


什么是函数

函数指一段可以直接被另一段程序调用的程序或代码

MySQL常见函数

字符串函数 进行字符串操作的函数

MySQL常用的内置 字符串函数如下

CONCAT(S1,S2……Sn)          字符串拼接函数,将S1,S2……Sn拼接为一个字符串

LENGTH(str)                        字符串长度,显示出字符串中包含多少个字符

LOWER(str)                         将字符串str全部转为小写

UPPER(str)                          将字符串str全部转为大写

REPLACE(str1,str2,str3)        字符串替换,将str1中的str2部分替换为str3

LPAD(str,n,pad)                   左填充,用字符串pad对str的左边进行填充,使得str达到n个字符串长度

RPAD(str,n,pad)                  右填充,用字符串pad对str的右边进行填充,使得str达到n个字符串长度

TRIM(str)                             去掉字符串的头部和尾部的空格

SUBSTRING(str,start,len)      返回字符串str从start位置起的len个长度的字符串(字符串的索引是从1开始的,而不是0)

update staff1 set number lpad(number,8,'0'); #修改number字段值,使用字符串”0”对其左填充,使得number达到8个字符串长度(注意:number的数据类型为varchar)

算术函数 进行数值计算的函数

MySQL常用的内置 算术函数如下

+(加法)、-(减法)、*(乘法)、/(除法)

ABS(x)                   对x取绝对值

MOD(x,y)              返回x/y的模(余数)

RAND()                 返回0~1内的随机数

ROUND(x,y)          求参数x的四舍五入的值,保留y位小数

CEIL(x)                  对x向上取整

FLOOR(x)              对x向下取整

select round(rand()*100000,0);   #随机生成5位数的验证码     如果产生的小数0.012345,生成的验证码就只有4位数1234,因此需要补0
select lpad(round(rand()*100000,0),5,'0')#补0

日期函数 进行日期操作的函数

MySQL常用的内置 日期函数如下

CURDATE()           返回当前日期(年月日)

CURTIME()            返回当前时间

NOW()                  返回当前日期和时间

YEAR(date)           获取指定date(年月日)的年份

MONTH(date)       获取指定date(年月日)的月份

DAY(date)             获取指定date(年月日)的天数

DATE_ADD(date , INTERVAL expr type)     在指定date(年月日)上增加expr(expr可以是年/月/日,具体是什么类型由type决定)

DATEDIFF(date1 , date2)     返回起始时间date1和结束时间date2之间的天数(date1-date2)

select date_add(now(),interval 20 day );    #当前日期的20天之后的日期(month为月,year为年)
select name,datediff(curdate(),entrydate) as 'date' from staff1 order by date desc;    #根据入职时间(entrydate)推算出入职天数,并按照倒序排序

转换函数 进行数据类型和值转换的函数

CAST(数据1 AS 数据类型1)      将数据1转为数据类型1

COALESCE(数据1 , 数据2 ,…… )

主要由两个用途:1、将NULL替换为其他的值

2、返回此数据列表中第一个非null表达式的值

select cast('001' as signed integer); #将字符串“001”转换为有符号的整数,显示结果为1
select coalesce(number,0) from staff1;   #查询staff1表的number字段,并将此字段的NULL值替换为0
select coalesce(number,age,0) from staff1; #查询staff1表的number字段;当numbernullage不为null时,number返回age的值;当numberage都为null时,返回0;当number为非null时,返回真实值

流程函数  进行条件删选

流程函数一般在SQL语句中实现条件筛选,从而提高语句的效率

MySQL常用的内置 流程函数如下

如果value(条件表达式)为true,则返回t,否则返回f

IF(vaule , t , f);                     

如果value1(可以是某个记录)不为空,则返回value1,负责返回value2

IFNULL(value1 , value2);      

如果val1为true,则返回res1;val2为true,返回res2;否则返回default

CASE

  WHEN [val1 ] THEN [res1]

  WHEN [val2] THEN [res2]

   ……

   ELSE [default] 

END;

如果espr的值等于val1,返回res1;espr的值等于val2,返回res2;否则返回default

CASE [expr]

  WHEN [val1] THEN [res1]  

  WHEN [val2] THEN[res2]

  ……

  ELSE [default]

END;

select name,(case origo when '重庆' then '新一线城市' else '非一线城市' end) from staff1; #查询staff1表的name和工作城市字段,如果工作城市为重庆,则显示为新一线城市,其余为非一线城市

聚合函数 进行数据聚合的函数

聚合函数的使用在DQL的分组查询有介绍

将一列数据作为一个整体,进行纵向计算(所有NULL值不参与计算)

count     统计数量(一列有多少个值)

max        最大值(一列的最大值)

min        最小值(一列的最小值)

avg         平均值(一列的平均值)

sum        求和(一列的所有数值求和)

聚合函数使用格式

SELECT 聚合函数 (字段列表) AS [别名] FROM 表名 [WHERE条件列表];

select COUNT(*) from emp;   #统计这个表有多少行(由于Null不参与统计,可能每个列的统计数值不一致,其中会取最大值作为结果返回)
select max(age) from emp;   #统计age的最大值
select avg(age) from emp;   #统计age的平均值

谓词 一般用于条件判断

谓词的使用在DQL的条件查询有介绍

谓词,全名为比较谓词;是一种需要满足返回值为真值True的函数

BETWEEN … AND …     在某个范围之内(左闭右闭)

IN(…)                           …为多个信息,in(…)表示只要满足…中的某个信息就算匹配,为真值

NOT IN(…)                   …为多个信息,只要不满足…的所有信息就算匹配,为真值

LIKE 占位符               模糊匹配(_表示匹配单个字符、%表示匹配任意字符)(OR的简便用法)

IS NULL                       表示NULL值

IS NOT NULL               表示非NULL值

select * from staff1 where gender is null ;     #查询gendernull,并将其对应的所有字段的值都显示出来
select * from staff1 where gender is not null ; #查询gender为非null,并将其对应的所有字段的值都显示出来
select * from staff1 where gender in ('','') ;  #查询性别为男、或者性别为女的信息,并将其对应的所有字段的值都显示出来
select * from staff1 where name like '__'  ;      #查询名称为2个字符信息,并将其对应的所有字段的值都显示出来
select * from staff1 where number between 20000100 and 20000102 #查询number2000010020000102之间对应的信息,并将其对应的所有字段的值都显示出来

注意事项

对于IN来说,如果此运算符的两侧有一个为NULL,则返回结果只能是NULL或1;如果找不到匹配项则返回NULL;如果找到匹配项,则返回1;

对于NOT IN来说,如果此运算符的两侧有一个为NULL,则返回结果只能是NULL或0;如果找不到匹配项则返回NULL;如果找到匹配项,则返回0;

select null in (1,3) , null in (1,3,null); #结果为null  null
select 10 in (1,null), 10 in (null,10); #结果为null  1
select 10 in (1,20), 10 in (1,10);      #结果为0  1

select null not in (1,3) , null not in (1,3,null); #结果为null  null
select 10 not in (1,null), 10 not in (null,10); #结果为null  0
select 10 not in (1,20), 10 not in (1,10);      #结果为1 和 0

MySQL基础语法(DDL、DQL、DML、DCL)_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/131913031?spm=1001.2014.3001.5502文章来源地址https://www.toymoban.com/news/detail-605304.html

到了这里,关于MySQL函数讲解(谓词、CASE)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库,表的增删改查详细讲解

    目录 1.CRUD 2.增加数据 2.1创建数据 2.2插入数据 2.2.1单行插入 2.2.2多行插入 3.查找数据 3.1全列查询 3.2指定列查询 3.3查询字段为表达式 3.3.1表达式不包含字段 3.3.2表达式包含一个字段 3.3.3表达式包含多个字段  3.4起别名 3.5distinct(去重) 3.6order by(排序) 3.6.1某字段默认排序 3.6.2某字

    2023年04月14日
    浏览(43)
  • 记录Bug:idea连接数据库报错DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact [28000][1045]

    报错信息: DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact [28000][1045] Access denied for user \\\'root\\\'@\\\'localhost\\\' (using password: YES). 报错原因: Mysql数据库用户的密码不正确。 解决方法: 修改数据库密码。

    2024年02月03日
    浏览(58)
  • Nodejs使用mysql2操作数据库【完整讲解】

    mysql2 是一个基于 Node.js 的 MySQL 客户端库,相比于 mysql 库,它具有以下几个优势: 性能更好:mysql2 库在性能方面进行了优化,使用了更高效的底层实现。它使用了更快的连接池管理和查询执行机制,可以处理更高的并发请求,提供更好的性能表现。 支持 Promise 和 async/await:

    2024年02月02日
    浏览(44)
  • MySQL数据库:内置函数

    规定:日期:年月日       时间:时分秒 函数名称 作用描述 current_date() 当前日期 current_time() 当前时间 current_timestamp() 当前时间戳 date(datetime) 返回datetime参数的日期部分 date_add(date,interval d_value_type) 在date中添加时间或日期。interval后面可以是year、day、minute、second date_sub(da

    2024年02月11日
    浏览(47)
  • 【MySQL】MySQL数据库,RDBMS 术语,使用说明和报错解决的详细讲解

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数

    2024年02月11日
    浏览(64)
  • 【JaveWeb教程】(17) MySQL数据库开发之 MySQL简介、安装、数据类型、SQL通用语法 详细代码示例讲解

    在我们讲解SpringBootWeb基础知识(请求响应案例)的时候,我们讲到在web开发中,为了应用程序职责单一,方便维护,我们一般将web应用程序分为三层,即:Controller、Service、Dao 。 之前我们的案例中,是这样子的请求流程:浏览器发起请求,先请求Controller;Controller接收到请求之

    2024年01月25日
    浏览(68)
  • MySQL8.0数据库开窗函数

          数据库开窗函数是一种在SQL中使用的函数,它可以用来对结果集中的数据进行分组和排序,以便更好地分析和处理数据。开窗函数与聚合函数不同,它不会将多行数据聚合成一行,而是保留每一行数据,并对其进行分组和排序。 常见的开窗函数包括ROW_NUMBER()、RANK()、

    2024年02月08日
    浏览(65)
  • MySQL 数据库中 CAST 函数如何使用?

          CAST 函数是 SQL 中的一种类型转换函数,它用于将一个数据类型转换为另一个数据类型。 2.1  将字符串转换为数字类型  2.2  将数字类型转换为字符串类型 2.3  将日期时间类型转换为字符串类型 2.4  将布尔类型转换为整型 2.5 将Interger 类型转换成 FLOAT 类型

    2024年02月15日
    浏览(63)
  • 实例讲解C++连接各种数据库,包含SQL Server、MySQL、Oracle、ACCESS、SQLite 和 PostgreSQL、MongoDB 数据库

      C++ 是一种通用的编程语言,可以使用不同的库和驱动程序来连接各种数据库。以下是一些示例代码,演示如何使用 C++ 连接 SQL Server、MySQL、Oracle、ACCESS、SQLite 和 PostgreSQL、MongoDB 数据库。 连接 SQL Server 数据库 要使用 C++ 连接 SQL Server 数据库,可以使用 Microsoft 的 ADODB 库。以

    2024年02月05日
    浏览(66)
  • MySQL数据库基础:JSON函数各类操作一文详解

    很多日常业务场景都会用到json文件作为数据存储起来,而mysql5.7以上就提供了存储json的支撑。往常存储json一般都保留在pg库或者是hive库里面,现在mysql有了支持的话基本业务都可以用mysql来实现。现在mysql8.x版本对json字符出处理已经做的非常完善了。现在就让我们来详细了解

    2024年02月04日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包