所见即所得即MySQL函数

news2024/11/29 2:43:45

✨✨hello,愿意点进来的小伙伴们,你们好呐!
🐻🐻系列专栏:【MySQL初阶】
🐲🐲本篇内容:MySQL函数的详解
🐯🐯作者简介:一名现大二的三非编程小白,日复一日,仍需努力。

  • 统计函数:
    • count
    • SUM 函数:
    • AVG 函数:
    • MAX 与 MIN 函数:
    • GROUP BY .... HAVING 函数:
  • 字符串相关函数 :
    • CHARSET 函数:
    • CONCAT 函数
    • INSTR 函数:
    • UCASE 与 LCASE 函数:
    • LEFT (string , n)函数:
    • LENGTH 函数:
    • REPLACE (str,search_str,replace_str)函数:
    • STRCMP(str1,str2) 函数:
    • SUBSTRING(str,position,length)
    • LTRIM 与 RTRIM函数:
    • 字符串函数综合运用:
  • 数学相关函数:
  • 时间日期函数:
    • 当前时间:
    • 日期的运算:
  • 加密函数:
    • MD5 函数:
    • PASSWORD(str) 函数:
  • 流程控制函数:

在MySQL中会有很多函数来简便我们的运算,可以使我们对MySQL中查询表中的数据并对其操作更加优雅,接下来让我来介绍这些优雅的函数…
在这里插入图片描述

统计函数:

count

count函数是一个统计类型的函数,可以使用在统计某一条件的物品或者人的个数.
接下来我来演示一下

在这里插入图片描述

我们在一个学生表中统计学生的个数.

SELECT COUNT(*) FROM students;

在这里插入图片描述

我们统计总分大于250的人数

SELECT COUNT((math + english + chinese)) FROM students
WHERE (math + english + chinese) > 250

COUNT(*) 与 COUNT(列) 有什么区别呢?
两者的作用都是来统计,不过也是会有一点点的区别,对于COUNT(星)来说,是把所有的人数都统计起来,然后COUNT(列) 是对于NULL的行是不会统计起来的,接下来我们再来看看是怎么回事.

在t1表中会有一个name为null,
在这里插入图片描述

带星的count

SELECT COUNT(*) FROM t1;

在这里插入图片描述
我们这些COUNT(列)后,将会将null的name不计算在内.
在这里插入图片描述

SUM 函数:

统计students表中学生math的总分.

SELECT SUM(math) FROM students;

在这里插入图片描述

AVG 函数:

统计students表中学生math的平均分.

SELECT AVG(math) FROM students;

在这里插入图片描述

MAX 与 MIN 函数:

演示max min 函数的使用:

 SELECT MAX(math),MIN(math) FROM students;

在这里插入图片描述

这些是统计函数简单场景下的演示,在很多情况下,我们的统计场景不可能这么简单,在开发中我们经常需要分组来进行统计 — 引入 GROUP BY … HAVING函数

GROUP BY … HAVING 函数:

GROUP BY 是用在对查询结果的分组统计上的,HAVING 函数用于限制分组显示的结果,就相当于WHERE用来过滤结果.

接下来我们在emp表中演示一下:
在这里插入图片描述

1. 显示每个部门的平均工资和最高工资.

我们可以把问题分解为简单的求出平均工资与最高工资,然后再加强为分部门的平均工资与最高工资

SELECT deptno, AVG(sal) , MAX(sal) FROM emp
		GROUP BY deptno;

在这里插入图片描述

2. 显示每个部门的每种岗位的平均工资和最低工资.

思路与上个问题一样,化繁为简

SELECT job , AVG(sal) , MIN(sal) FROM emp
		GROUP BY job;

在这里插入图片描述

3.显示平均工资低于1000的部门号,和它的平均工资.

我们先查找部门的平均工资,然后再过滤,一步一步来

SELECT deptno,AVG(sal) AS sal FROM emp
	GROUP BY deptno
	HAVING sal < 1000;

在这里插入图片描述

字符串相关函数 :

在MySQL中存在着非常便捷的一种函数 – 对字符串进行操作的函数,接下来我来介绍这些函数.

CHARSET 函数:

CHARSET 函数 的作用是返回表中字符串的字符集.

SELECT CHARSET(ename) FROM emp;

在这里插入图片描述
因为在创建表的时候,没有指定字符集,所以会以默认的字符集utf8

CONCAT 函数

CONCAT 函数 的使用是可以来拼接字符串,就相当于Java语法中的 ‘+’

SELECT CONCAT(ename, ' 工作是 ', job) FROM emp;

在这里插入图片描述

INSTR 函数:

INSTR 函数 的作用是返回子串在字符串中首次出现的位置.
DUAL 是一个亚元表,是MySQL中的一个相当于虚拟的表,因为我们这个函数并不需要在某个表中查询,所以就可以使用亚元表.

SELECT INSTR('123456','456') FROM DUAL;

在这里插入图片描述

UCASE 与 LCASE 函数:

UCASE 与 LCASE 函数 这两个函数是来对字符串英文字母进行大小写转化的.

SELECT UCASE('sss') FROM DUAL;
SELECT LCASE('AAA') FROM DUAL;

LEFT (string , n)函数:

LEFT 函数 是从字符串的左边起,去n个字符

SELECT LEFT('123456',3) FROM DUAL;

在这里插入图片描述

LENGTH 函数:

LENGTH 函数: 这个函数应该很熟悉,在Java中的字符串长度的方法.

SELECT LENGTH('123456789') FROM DUAL;

在这里插入图片描述

REPLACE (str,search_str,replace_str)函数:

REPLACE (str,search_str,replace_str)函数: 是在str中使用replace_str 替换search_str

SELECT REPLACE('123456789','123','111');

在这里插入图片描述

STRCMP(str1,str2) 函数:

STRCMP 函数: 是来比较字符串大小的函数.如果str1长则返回1,如果str2长则返回-1

SELECT STRCMP('111','1111');

在这里插入图片描述

SELECT STRCMP('111','1');

在这里插入图片描述

SUBSTRING(str,position,length)

SUBSTRING(str,position,length) 函数在str中从position开始,取length个字符

SELECT SUBSTRING('123456789',2,2);

在这里插入图片描述

LTRIM 与 RTRIM函数:

该函数的作用在于去除字符串前端的空格或者后端的空格,也可以去除前后端的空格 – TRIM

SELECT LTRIM('    11');

在这里插入图片描述

字符串函数综合运用:

我们要以首字符为小写的方式显示所有的员工emp表的名字:

方法1:

我们可以使用REPLACE 将首字母替换为小写,其余的不变.

SELECT REPLACE(ename,LEFT(ename,1),LCASE(LEFT(ename,1))) FROM emp;

在这里插入图片描述

方法2:

我们可以使用CONCAT 函数来进行字符串拼接.

SELECT CONCAT(LCASE(SUBSTRING(ename,1,1)),SUBSTRING(ename,2,LENGTH(ename) - 1))
	FROM emp;

在这里插入图片描述

数学相关函数:

MySQL中提供了很多数学函数可以供我们使用,这些函数都很简单,我就不一一展示,将用途统计起来给各位看…

在这里插入图片描述

时间日期函数:

在我们实际中的开发上,会在很多方面都与时间相关,所以MySQL中的时间相关的函数就尤为重要.接下来我们来一起看看这些跟日期相关的函数

时间的函数可以分为4组:

当前时间:

在这里插入图片描述

SELECT CURRENT_DATE() FROM DUAL;
SELECT CURRENT_TIME() FROM DUAL;
SELECT CURRENT_TIMESTAMP() FROM DUAL;

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

日期的运算:

在这里插入图片描述
往当前日期加10天.

SELECT DATE_ADD('2022-11-5',INTERVAL 10 DAY) FROM DUAL;

在这里插入图片描述

在当前日期减10天

SELECT DATE_SUB('2022-11-5',INTERVAL 10 DAY) FROM DUAL;

计算两个日期的天数差.是第一个时间 减 第二个时间

SELECT DATEDIFF('2022-11-05','2022-11-01') FROM DUAL;

在这里插入图片描述

在这里插入图片描述

SELECT NOW() FROM DUAL;

在这里插入图片描述

加密函数:

MD5 函数:

该函数可以给一串没有经过处理的密码给进行加密,计算出MD5 32位的字符串

SELECT MD5('1hj') FROM DUAL;

在这里插入图片描述

PASSWORD(str) 函数:

PASSWORD(str) 函数也是一个给密码进行加密的函数,在MySQL8之前中的密码其实就是用PASSWORD函数来进行加密的,MySQL8后就移除了该函数.

红色的框内是我MySQL的密码.

在这里插入图片描述
在这里插入图片描述
接下来我们来看看MySQL中的密码加密后的结果是否与现在的一样.

SELECT * FROM mysql.user;

在这里插入图片描述

这就是MySQL中的加密函数password()

流程控制函数:

在这里插入图片描述

IF函数 与Java中的三目运算符相似,在第一个表达式为真的情况下,就返回第二个表达式,为假就返回第三个表达式.
IFNULL 如果第一个表达式为NULL,就返回第二个表达式,若不为null,就返回第一个表达式.
在这里插入图片描述
这个函数相当于Java中的多分支也是很简单很简单的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring】核心部分之IOC:通过列举代码例子,从底层刨析,深入源码,轻轻松松理解Spring的核心IOC,IOC有这一篇足以

IOC一&#xff0c;概念和原理1.概念&#xff1a;控制反转2.原理&#xff1a;&#xff08;xml解析&#xff0c;工厂模式&#xff0c;反射&#xff09;3.IOC接口&#xff1a;两个主要容器实现类&#xff08;加载xml配置文件&#xff09;二&#xff0c;操作Bean管理1.基于 xml 配置…

React - 实现瀑布流加载

React - 实现瀑布流加载一. 瀑布流实现1.1 处理重复请求问题一. 瀑布流实现 先来看下原本的效果&#xff0c;一次性加载完所有的信息然后展示&#xff1a; 其次&#xff0c;我们需要去监听这个滚轮的滚动事件&#xff0c;那么React页面就可以添加一个监听器&#xff1a; use…

SpringSecurity Oauth2实战 - 04 自定义AuthProvider实现登录认证

文章目录1. 搭建资源服务器1. Token存储配置类 TokenStoreAutoConfiguration2. 资源服务器配置类 ResourceServerAutoConfiguration3. 在META-INF/spring.factories文件下添加配置类2. 搭建授权服务器1. 密码加密配置类 PasswordEncodeConfig2. RestTemplateConfig3. 授权服务器…

k3s 离线部署指南

文章目录1. 简介2. Docker 手动部署镜像方式2.1 安装docker2.2 导入镜像2.3 安装 k3s2.4 查看3. Containerd 手动部署镜像方式3.1 导入镜像到 containerd 镜像列表3.2 授予可执行权限3.3 安装 K3s4. Containerd 私有镜像仓库方式4.1 配置 K3s 镜像仓库4.2 授予可执行权限4.3…

集合(Set)和有序集合(ZSet)的基本使用方法详解【Redis】

文章目录一. Redis中的集合(Set)1.1基本的一些操作1.1.1 smembers查看集合中的所有成员1.1.2 scard删除成员数量1.1.3 smove移动成员1.1.4 sinterstore 存储俩个集合的交集二.Redis中的有序集合(ZSet)2.1 基本的一些操作2.1.1 zadd添加1到多个成员2.1.2 zcount 返回指定分数区间…

【HarmonyOS】鸿蒙轻量级智能穿戴应用可以集成华为分析SDK吗?

1、问题描述 我们的项目是基于鸿蒙系统开发的轻量级智能穿戴应用&#xff0c;目前在做的主要是运动手表GT3。 我们在项目中使用了华为分析服务&#xff0c;但是在Build Hap时出现问题&#xff1a; 因此&#xff0c;我们想了解轻量级智能穿戴应用项目中是否能够集成华为分析服…

计算机毕业设计(附源码)python在线影评系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Leetcode-每日一题1106. 解析布尔表达式(DFS模拟栈)

题目链接&#xff1a;点击跳转 思路 方法一、DFS模拟栈 题目意思很简单让你去判断与或非布尔表达式的结果&#xff0c;我们可以看布尔表达式看成一棵树&#xff0c;需要我们解决的是从最底层的嵌套布尔表达式产生的结果不断向上的结果&#xff0c;如图&#xff1a; 既然他是…

云栖大会开源重磅升级!PolarDB-X v2.2: 企业级和国产化适配

2022 年云栖大会上&#xff0c;PolarDB-X 发布 2.2.0 版本&#xff0c;这是一个重要的里程碑版本&#xff0c;重点推出符合分布式数据库金融标准下的企业级和国产化适配&#xff0c;共包括八大核心特性&#xff0c;全面提升 PolarDB-X 分布式数据库在金融、通讯、政务等行业的普…

自定义分页器

文章目录自定义分页器1、分页推导2、分页器代码封装自定义分页器 1、分页推导 queryset对象支持切片操作 确定用户访问的页码 url?page1 current_pagerequest.GET.get(page,1)前端获取到 的都是字符串数据&#xff0c;需要类型转换 current_page request.GET.get(page,…

为什么C语言执行效率高,运行快?

目录 简述C语言由来 BCPL语言及代码B语言以及代码C语言 编程语言 机器语言汇编语言高级语言 C为何快速 简述 都说C语言编写的程序执行效率比较高&#xff0c;那么到底高在哪里&#xff0c;我们一块来学习学习。 C语言由来 C语言源自于BCPL、B两种语言。 BCPL语言以及代码…

django csrfMiddleware的一些理解跨站和跨域

术语 术语解释备注跨域两个 URL 的“协议主机名端口”3者只要有一个不一致http://www.taobao.com/和https://www.taobao.com/跨站两个 URL 的 eTLD1 不相同a.github.io 和 b.github.ioeTLDeffective top level domain &#xff08;有效顶级域名&#xff09;.com、.co.uk、.git…

第六节:数组的定义与使用【java】

目录 &#x1f4c3;1. 数组的基本概念 1.1 为什么要使用数组 1.2 什么是数组 1.3 数组的创建及初始化 1.4 数组的使用 &#x1f392;2. 数组是引用类型 2.1 初始JVM的内存分布 2.2 基本类型变量与引用类型变量的区别 2.3 认识 null 2.4 再谈引用变量 &#x1f4d6;3. …

Redis的RDB持久化配置以及数据恢复

文章目录Redis的RDB持久化配置以及数据恢复配置RDB持久化机制RDB持久化机制的工作流程基于RDB持久化机制的数据恢复Redis的RDB持久化配置以及数据恢复 配置RDB持久化机制 在 redis 的配置文件中找到如下内容&#xff1a; 以 save 60 10000 为例&#xff0c;表示每隔 60s&…

Springboot 整合与文件配置

哈喽~大家好&#xff0c;这篇看看Springboot 整合与文件配置。 &#x1f947;个人主页&#xff1a;个人主页 &#x1f948; 系列专栏&#xff1a;【Java框架】 &#x1f949;与这篇相关的文章&#xff1a; 【JAVAEE框架】MyBatis与Spring的整合&#xff0…

Unity-huatuo热更新调研

文章目录1. 相关资料2. 环境准备2.1 项目和编辑器版本2.2 安装huatuo插件2.3 在build settings里面勾选Export Project2.4 导出Android studio工程3. 验证热更新3.1 更改读取目录3.2 运行android apk3.3 热更新1. 相关资料 bilibili视频&#xff1a;https://www.bilibili.com/…

学院打卡第十四天

今天是一道困难题&#xff0c;难得有困难题&#xff01;&#xff01; 如题&#xff1a; 但是这个困难题感觉也不是很”困难“&#xff01;&#xff01;&#xff01; 算法思想&#xff1a; 第一感觉就是利用栈的思想&#xff0c;这种题做多了&#xff0c;一看见就是想到栈&…

2021年上半年软件设计师下午真题及答案解析(三)

阅读下列说明和图&#xff0c;回答问题1至问题3&#xff0c;将解答填入答题纸的对应栏内。 【说明】 某中医医院拟开发一套线上抓药APP&#xff0c;允许患者凭借该医院医生开具的处方线上抓药&#xff0c;并提供免费送药上门服务。该系统的主要功能描述如下&#xff1a; &#…

Kotlin编程实战——概述(01)

一 概述 Kotlin用于服务器开发Kotlin 进行 Android 开发Kotlin 用于 JavaScript 开发Kotlin 用于原生开发Kotlin 用于数据科学协程多平台 二 Kotlin用于服务器开发 2.1 原因 表现力可伸缩性互操作性迁移迁移工具学习曲线 2.2 Kotlin 进行服务器端开发的框架 Spring、Vert.…

Premiere 出现“该级别的帧大小/帧速率无效。请减小视频范围或帧速率,或者增加配置文件和级别,然后重试”的解决办法

有时候我们需要制作一定纵横比的视频&#xff0c;比如设置画面大小为1080(水平)1920(垂直)的竖屏尺寸&#xff0c;但是最近我导出视频时发现了 “该级别的帧大小/帧速率无效。请减小视频范围或帧速率&#xff0c;或者增加配置文件和级别&#xff0c;然后重试” 这个问题&#x…