首页 > 数据库 >MySQl常用函数解析

MySQl常用函数解析

时间:2024-12-21 20:28:34浏览次数:6  
标签:返回 name -- SELECT MySQl 字符串 解析 select 函数

1. LEAST 函数:

返回多个值中的最小值

LEAST(value1, value2, ..., valueN)
2. GREATEST 函数:

返回多个值中的最大值

GREATEST(value1, value2, ..., valueN)

字符串比较规则:

  • 从字符串的第一个字符开始,逐个字符进行比较,直到找到不同的字符为止。如果字符串的前几个字符相同,则比较下一个字符。
  • 字符顺序决定大小:比如'A' < 'B''a' < 'b',如果一个字符串是另一个字符串的前缀,则短的字符串被认为更小。例如,'abc' < 'abcd'
SELECT GREATEST('apple', 'banana', 'grape') AS max_value; --grape
3.字符串函数
  • concat(s1,s2,...,sn) : 拼接字符串, 把s1,s2,sn拼接成一个字符串
  • lower(str) : 把字符串str转化为小写; upper转为大写
  • lpad(str,n,pad) : 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度 ; rpad()右填充
  • trim(str) : 去掉字符串头部和尾部的空格
  • substring(str,start,len) : 返回字符串str从start位置开始len长度的字符串
SELECT SUBSTRING('wjq','3',1)  
FROM DUAL

SELECT RPAD('wjq',7,'gfgkhj')
FROM DUAL
4.数值函数
  • ceil(x) : 向上取整; floor(x):向下取整
  • mod(x/y) : 返回x/y的模
  • rand(): 返回0到1内的随机数
  • round(x,y): 求x四舍五入的值,保留y位小数
5.日期函数
  • curdate(): 返回当前日期
  • curtime(): 返回当前时间
  • now():返回当前日期和时间
  • year(date): 返回指定date的年份
  • month(date): 获取指定date的月份
  • day(date): 获取指定date的日期
  • date_add(date,interval expr type) :返回一个日期/时间值加上expr时间间隔后的时间值
  • datediff(date1,date2): 返回这两个时间之间的天数
  • DATEDIFF(end_date, start_date):返回两个日期的差值
6.流程函数
  • IF(value,t,f) 如果value为true,则返回t,否则返回f

  • IFNULL(value1,value2) 如果value1不为空,返回value1,否则返回value2

  • CASE WHEN [val] THEN [res1] … ELSE [default] END 如果val1为true,返回res1,…否则返回default默认值

  • CASE[expr] WHEN [val]THEN[res1]... ELSE[default]` END 如果expr的值等于val1,返回res1,…否则返回default默认值

SELECT IF(1 > 0, 'True', 'False');

SELECT IFNULL(NULL, 'Default Value');

SELECT CASE WHEN score >= 60 THEN 'Pass' ELSE 'Fail' END;

SELECT CASE grade WHEN 'A' THEN 'Excellent' WHEN 'B' THEN 'Good' ELSE 'Average' END;

7.聚合函数
  • COUNT():计算一列中的行数或非空值的个数
SELECT COUNT(*) FROM table_name;
  • SUM():计算一列的总和。
SELECT SUM(column_name) FROM table_name;
  • AVG():计算平均值。
SELECT AVG(column_name) FROM table_name;
  • MAX():返回列中最大值。
SELECT MAX(column_name) FROM table_name;

  • MIN():返回列中最小值。
SELECT MIN(column_name) FROM table_name;
  • GROUP_CONCAT() (MySQL):将列中的值连接成一个字符串。
SELECT GROUP_CONCAT(column_name) FROM table_name;
8.IFNULL函数

检查表达式的值是否为 NULL。如果是 NULL,则返回一个指定的替代值;如果不是 NULL,则返回表达式原来的值。

语法
IFNULL(expression, alt_value)
  • expression:要检查的表达式
  • alt_value:当 expressionNULL 时返回的值。
9.count的几种用法

COUNT(*) 会统计表中的所有行数(包括包含 NULL 值的行)

SELECT COUNT(*) FROM table_name;

COUNT(column_name) 只统计列中非 NULL 的值

SELECT COUNT(column_name) FROM table_name;

COUNT(DISTINCT column_name) 统计列中不同值的数量,忽略重复值和 NULL 值.

SELECT COUNT(DISTINCT column_name) FROM table_name;

--字符串函数  
select  concat('warren','ricci') from dual;-- 拼接字符串  
  
select lower('RICCI'); --转为小写  
  
select upper('ricci');-- 转为大写  
  
select lpad('1',5,'0');-- 左填充,使用'0'对'1'左边进行填充,达到10个字符串长度  
  
select rpad('1',5,'0');-- 右填充,使用'0'对'1'右边进行填充,达到10个字符串长度  
  
select trim(' warren '); --去除头部和尾部的空格  
  
select substring('Warren',2,3); --截取字符串,从索引2位置开始(第一个字符索引为1),截取长度为3  
  
  
  
--数值函数  
select ceil(4.5);-- 向上取整  
  
select floor(4.5);-- 向下取整  
  
select mod(3,4); --返回3/4的模  
  
select rand(); --返回一个0到1的随机数  
  
select round(4.336,2);-- 四舍五入,保留两位小数  
  
  
  
--日期函数  
select curdate();-- 当前日期  
  
select curtime();-- 当前时间  
  
select now();-- 当前时间和日期  
  
select  year(now()); -- 查看日期所属年份  
  
select month(now()); -- 查看日期所属月份  
  
select day(now()); -- 查看日期的号数  
  
select date_add('2023-12-03',interval 70 day); --从某一个日期往后推指定天数  
select date_add(now(),interval 70 day); --从某一个日期往后推指定天数  
select date_add(now(),interval 70 month); --从某一个日期往后推指定月数  
select date_add(now(),interval 70 year); --从某一个日期往后推指定年数  
  
select datediff(now(),'2023-11-20'); -- datddiff(起始时间,结束时间),返回起始时间和结束时间之间的天数  
  
  
# 流程函数  
select if(true,'warren','ricci'); -- if(value,t,f),如果value为true,返回t,否则返回f  
  
select ifnull(null,'Warren');-- ifnull(value1,value2),如果value1不为空,返回value1,否则返回value2,空字符串:''不为空  
  
use `database example`;  
SELECT 职位,(CASE 旷工  
           WHEN '1' THEN '优秀'  
           ELSE '不合格'  
       END) as '旷工情况表'  
FROM works;  
  
SELECT 职位,(CASE  
           WHEN 旷工<=1 THEN '优秀'  
           when 旷工=3 then '太差了'  
           ELSE '还行'  
       END) as '旷工情况表'  
FROM works; -- 两种case语句

标签:返回,name,--,SELECT,MySQl,字符串,解析,select,函数
From: https://blog.csdn.net/2301_80165178/article/details/144556655

相关文章

  • 《操作系统真相还原》实验记录1.2——print.S打印函数
    一、print.S文件说明put_char函数(每次只打印一个字符)是各种打印函数的核心1.1功能说明put_char函数的处理流程备份寄存器现场;获取光标坐标值,光标坐标值是下一个可打印字符的位置;为了在光标处打印字符,需要读取光标坐标寄存器,获取光标坐标值。获取待打印的字符;......
  • 【数据库开发】小红书MySQL数据一致性校验能力探索与实践
    本文主要介绍数据一致性校验如何结合小红书的业务进行实践并落地,以及数据一致性校验在小红书内部拿到的实际收益。一、背景1.1什么是数据一致性校验在数据迁移、数据同步以及多数据中心部署等场景中,数据的一致性要求极为严格。然而冗长的同步计算链路产生的误写或丢失、主从复......
  • Vue 中 @click 和 .native 修饰符的详细解析
    今天在项目中实现点击跳转页面的时候遇到了el-col添加@click无效的状况,查了一些相关资料,记录一下。目录简介原生HTML元素与自定义组件@click 的工作原理.native修饰符的作用根元素一定是原生HTML元素吗?总结示例代码1.简介在Vue.js中,事件绑定是开发过程中非常常见......
  • 巧记斜边函数hypot
    hypot是一个数学函数,源于英文"hypotenuse(斜边)",hypot(a,b)返回直角边边长为a、b的直角三角形(right-angledtriangle)的斜边长度。该函数定义在<math.h>头文件中,其功能相当于sqrt(a*a+b*b)。函数原型:doublehypot( double x, double y );示例代码如下:#include<stdio.h>......
  • Spring源码分析之BeanFactory接口的解析
    前言:  在我们的前两篇文章当中我们看完之后其实我们都会发现当我们进行相关的重要的行为的时候如我们看到的GetBean或者在Register方法的时候会出现BeanFactroy进行调用那么这个时候我们就会产生一个疑惑这个到底是什么为什么这么重要,在我没有说的时候我们从字面上进行......
  • RHCE-第六章:DNS域名解析服务器
    一、DNS简介DNS(DomainNameSystem)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端口,在/etc/services(搜索domain)这个文件中能看到。通常DNS是以UDP这......
  • 鸿蒙HarmonyOS应用开发 |鸿蒙技术分享HarmonyOS Next 深度解析:分布式能力与跨设备协作
    鸿蒙技术分享:HarmonyOSNext深度解析:分布式能力与跨设备协作实战随着万物互联时代的到来,操作系统作为连接设备、应用与用户体验的核心,扮演着不可或缺的角色。华为最新发布的HarmonyOSNext(鸿蒙操作系统下一代版本)不仅在技术架构上实现了颠覆性升级,更在生态体验上迈向了一个新的......
  • Python常用77个函数总结
    01、print()函数:打印字符串02、raw_input()函数:从用户键盘捕获字符03、len()函数:计算字符长度04、format(12.3654,‘6.2f’/‘0.3%’)函数:实现格式化输出05、type()函数:查询对象的类型06、int()函数、float()函数、str()函数等:类型的转化函数07、id()函数:获取对象的内......
  • C++ 发展历程全解析
    引言C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持面向过程的程序设计,还支持面向对象的程序设计(OOP)和泛型编程的程序设计语言。它由丹麦计算机科学家BjarneStroustrup于1979年在贝尔实验室开始设计开发。C++的发展经历了多个阶段,从最初的实验性扩展到......
  • 传输层安全协议TLS 超全解析!(含record、handshake握手全流程、Alert、ApplicationData)
    TLS协议概述SSL即安全套接字层,它位于OSI网络模型中的传输层,SSL在1999年更名为TLS,即传输安全层,直到现在,TLS一共出现过三个版本,1.1、1.2和1.3,目前最广泛使用的是1.2,所以接下来的探讨都是基于TLS1.2的版本上的。设计目标保密性通过加密算法保护数据内容,......