MySQL数据库,函数与分组

单行函数:

  • 操作数据对象

  • 接受参数返回一个结果

  • 只对一行进行变换

  • 每行返回一个结果

  • 可以嵌套

  • 参数也可以是一列或一个值

数值函数

基本函数:

注:ROUND(x,y)函数的y是负数时,即往高位进行四舍五入,如-3就是按百位进行四舍五入(如ROUND(12767,-3)的结果为13000)。TRUNCATE与ROUND的区别是:

  • TRUNCATE是直接取y位小数,不进行四舍五入

  • TRUNCATE没有单参数的函数,必须传入操作数和截断的小数位 。

  • TRUNCATE(12767,-3)的结果是12000。

三角函数

由于参数要代入的是弧度值,所以经常要用到角度和弧度的运算的函数:

指数和对数:

进制间的转换:

字符串函数:

注:在MySQL中,字符串的索引是从1开始的

日期和时间函数:

获取日期时间:

日期与时间戳的转换:

获取月份、星期、星期数、天数等函数:

日期的操作函数:

时间和秒钟转换的函数

计算日期和时间的函数:

注:加减组合型类型时要用字符串,并将要组合的两个元素用_隔开。例如:

SELECT DATE_ADD(NOW(),INTERVAL '2_2' YEAR_MONTH)

FROM DUAL;

注:ADDTIME的时间也可以用'时:分:秒'表示,例如:

SELECT ADDTIME(NOW( ),'2:2:2')

FROM DUAL;

日期的格式化与解析:

格式化:日期  ——》字符串

解析:字符串  ——》日期

格式化的格式符:

流程控制函数:

流程处理函数可以根据不同的条件,执行不同的处理流程,可以在SQL语句中实现不同的条件选择。MySQL中的流程处理函数主要包括IF( )、IFNULL( )、CASE( )函数。

加密与解密函数

加密与解密函数主要用于对数据库的数据进行加密和解密处理,以防止数据被他人窃取。

注:

PASSWORD/ENCODE/DECODE函数在MySQL8.0中开始被弃用,不能再使用PASSWORD/ENCODE/DECODE函数。

MD5和SHA函数都是不可逆的。

MySQL信息函数:

MySQL中内置了一些可以查询MySQL信息的函数,这些函数主要用于帮助数据库开发或运维人员更好地对数据库进行维护工作。

其他函数:

注:

FORMAT函数中n如果小于零,不会往高位去四舍五入保留,而是保留整数部分

关于以点分割的IP地址和数字形式的IP地址:以“192.168.1.100”为例,数字形式是192乘以256的三次方,加上168乘以256的二次方,加上1乘以256的一次方,加上100乘以256的零次方。

聚合函数:

聚合函数(或聚集函数、分组函数)是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值。

即作用于一组数据,并对一组数据返回一个值。

常见的几个聚合函数:

  • AVG( ):求平均值

  • SUM( ):求总和

  • MAX( ):求最大值

  • MIN( ):求最小值

  • COUNT( ):计算指定的字段在查询结果中查询的个数

注:AVG函数和SUM函数的参数只能代入数值类的数据的集合,因为非数值类的数据(比如字符串)的集合没有平均、总和的说法

MAX函数和MIN函数的参数可以代入数值类的数据的集合,也可以代入一些非数值类的数据(比如日期、字符串)的数据的集合,字符串可以按照ASCII码值按位比较的方式来比较大小。

以上函数在计算指定字段出现的个数时,都不会计算字段值为NULL的数据

GROUP BY的使用

  • 要对数据进行分组时,使用GROUP BY加上指定的字段作为分组的标准

  • SELECT中出现的非组函数的字段(即不是出现在对分出来的每个组进行操作的函数中的字段)必须声明在GROUP BY中,GROUP BY中声明的字段不能出现在SELECT中。会出现冲突,比如,以工作职位分组,查询每个部门的平均工资,如果又要查询部门,但是每个工作职位的组中有不同的部门,就形成了冲突。(如果未分组即把所有的数据当作一个组,没有使用ORDER BY时的聚合函数也是组函数)

  • GROUP BY声明在FROM后面、WHERE后面

例:要按工作职位和工作部门两个标准来排序

SELECT job , deptno , AVG(sal)FROM empGROUP BY job , deptnoORDER BY AVG(sal) DESC;

GROUP BY中使用WITH ROLLUP

  • 使用WITH ROLLUP关键字后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有的记录的总和,即统计记录数量。

  • 当使用WITH ROLLUP时,不能同时使用ORDER BY子句进行结果排序,即ROLLUP和ORDER BY是互相排斥的。

HAVING的使用:

  • HAVING的作用是用来过滤数据。

  • 如果过滤条件中使用了聚合函数,则必须使用HAVING来替换WHERE

  • HAVING必须声明在GROUP BY后面

  • 使用HAVING的情况是SQL中使用了GROUP BY

  • 如果过滤条件中有聚合函数,则此过滤条件必须声明在HAVING中。如果过滤条件中没有聚合函数,则此过滤条件声明在WHERE中或HAVING中都可以,建议声明在WHERE中,执行效率会更高

SELECT执行顺序:

查询语句的代码的书写的顺序:

SELECT……FROM……WHERE……GROUP BY……HAVING……ORDER BY……LIMIT……

查询语句的执行顺序:

FROM……ON……JOIN……WHERE……GROUP BY……HAVING……SELECT的字段……DISTINCT……ORDER BY……LIMIT……

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Plonky2 = Plonk + FRI

Plonky2由Polygon Zero团队开发,实现了一种快速的递归SNARK,据其团队公开的基准测试,2020年,以太坊第一笔递归证明需要60s生成,而于今Plonky2在 MacBook Pro上生成只需 170 毫秒。 下面将逐步剖析Plonky2。 整体构造 …

acwing-Linux学习笔记

acwing-Linux课上的笔记 acwing-Linux网址 文章目录 1.1常用文件管理命令homework作业测评命令 2.1 简单的介绍tmux与vimvimhomeworktmux教程vim教程homework中的一些操作 3 shell语法概论注释变量默认变量数组expr命令read命令echo命令printf命令test命令与判断符号[]逻辑运算…

Hive HWI 配置

前言 1、下载安装好hive后,发现hive有hwi界面功能,研究下是否可以运行,于是使用hive –service hwi命令启动hwi界面报错。 启动hwi功能 2、访问192.168.126.110:9999/hwi,发现访问错误 一、HWI介绍 HWI(Hive Web Int…

借助乔拓云,轻松驾驭小程序开发

在当今数字化时代,微信小程序已经成为企业和个人开展业务、提升用户体验的重要工具。然而,要想成功地开发并运营一个小程序,却不是一件容易的事情。在这个过程中,第三方开发平台的出现为开发者提供了一个便捷、高效、可靠的解决方…

【android开发-22】android中音频和视频用法详解

1,播放音频 MediaPlayer是Android中用于播放音频和视频的类。它提供了许多方法来控制播放,例如播放、暂停、停止、释放等。下面是一个简单的MediaPlayer用法详解和参考代码例子。 首先,确保在布局文件中添加了一个MediaPlayer控件&#xff…

如何进行代码混淆?方法与常见工具介绍

​ 如何进行代码混淆?方法与常见工具介绍 目录 什么是代码混淆? 代码混淆的方法 常见代码混淆工具 什么是代码混淆? 代码混淆是指将计算机程序的代码转换成一种功能上等价,但难于阅读和理解的形式的行为。混淆后的代码很难被…

探究Logistic回归:用数学解释分类问题

文章目录 前言回归和分类Logistic回归线性回归Sigmoid函数把回归变成分类Logistic回归算法的数学推导Sigmoid函数与其他激活函数的比较 Logistic回归实例1. 数据预处理2. 模型定义3. 训练模型4. 结果可视化 结语 前言 当谈论当论及机器学习中的回归和分类问题时,很…

cpu 300% 爆满 内存占用不高 排查

top查询 cpu最高的PID ps -ef | grep PID 查看具体哪一个jar服务 jstack -l PID > ./jstack.log 下载/打印进程的线程栈信息 可以加信息简单分析 或进一步 查看堆内存使用情况 jmap -heap Java进程id jstack.log 信息示例 Full thread dump Java HotSpot(TM) 64-Bit Se…

MQTT 协议入门:轻松上手,快速掌握核心要点

文章目录 什么是 MQTT?MQTT 的工作原理MQTT 客户端MQTT Broker发布-订阅模式主题QoS MQTT 的工作流程开始使用 MQTT:快速教程准备 MQTT Broker准备 MQTT 客户端创建 MQTT 连接通过通配符订阅主题发布 MQTT 消息MQTT 功能演示保留消息Clean Session遗嘱消…

【广州华锐互动VRAR】VR戒毒科普宣传系统有效提高戒毒成功率

随着科技的不断发展,虚拟现实(VR)技术已经逐渐渗透到各个领域,为人们的生活带来了前所未有的便利。在教育科普领域,VR技术的应用也日益广泛,本文将详细介绍广州华锐互动开发的VR戒毒科普宣传系统&#xff0…

长沙电信大楼火灾调查报告发布:系烟头引发。FIS来护航安全

近日,长沙电信大楼的火灾调查报告引起广泛关注。调查发现,火灾是由未熄灭的烟头引发,烟头点燃了室外平台的易燃物,迅速蔓延至整个建筑。这起悲剧再次提醒我们,小小的疏忽可能酿成大灾难。但如果我们能及时发现并处理这…

Linus:我休假的时候也会带着电脑,否则会感觉很无聊

目录 Linux 内核最新版本动态 关于成为内核维护者 代码好写,人际关系难处理 内核维护者老龄化 内核中 Rust 的使用 关于 AI 的看法 参考 12.5-12.6 日,Linux 基金会组织的开源峰会(OSS,Open Source Summit)在日…

java设计模式学习之【适配器模式】

文章目录 引言适配器模式简介定义与用途:实现方式:类型 使用场景优势与劣势适配器模式在Spring中的应用多媒体播放器示例代码地址 引言 在我们的日常生活中,适配器无处不在:无论是将不同国家的插头转换成本地标准,还是…

JavaSE基础50题:11. 输出一个整数的每一位

概述 输出一个整数的每一位。 如:1234的每一位是4,3,2,1 。 个位:1234 % 10 4 十位:1234 / 10 123 123 % 10 3 百位:123 / 10 12 12 % 10 2 千位: 12 / 10 1 代码 ublic sta…

yolo目标检测+目标跟踪+车辆计数+车辆分割+车道线变更检测+速度估计

这个项目使用YOLO进行车辆检测,使用SORT(简单在线实时跟踪器)进行车辆跟踪。该项目实现了以下任务: 车辆计数车道分割车道变更检测速度估计将所有这些详细信息转储到CSV文件中 车辆计数是指在道路上安装相应设备,通过…

Linux文件部分知识

目录 认识inode 如何理解创建一个空文件? 如何理解对文件写入信息? 如何理解删除一个文件? 为什么拷贝文件的时候很慢,而删除文件的时候很快? 如何理解目录 ​编辑 文件的三个时间 ​编辑 Access: …

【文件上传系列】No.1 大文件分片、进度图展示(原生前端 + Node 后端 Koa)

分片(500MB)进度效果展示 效果展示,一个分片是 500MB 的 分片(10MB)进度效果展示 大文件分片上传效果展示 前端 思路 前端的思路:将大文件切分成多个小文件,然后并发给后端。 页面构建 先在页…

超大规模集成电路设计----FPGA时序模型及FSM的设计(八)

本文仅供学习,不作任何商业用途,严禁转载。绝大部分资料来自----数字集成电路——电路、系统与设计(第二版)及中国科学院段成华教授PPT 超大规模集成电路设计----RTL级设计之FSM(八) 7.1 CPLD的时序模型7.1.1 XPLA3 时序模型7.1.…

电话卡Giffgaff激活

Giffgaff是一家总部位于英国的移动电话公司。作为一家移动虚拟网络电信运营商,Giffgaff使用O2的网络,是O2的全资子公司,成立于2009年11月25日。 Giffgaff与传统的移动电话运营商不同,区别在于其用户也可以参与公司的部分运营&…

鸿蒙原生应用开发——分布式数据对象

01、什么是分布式数据对象 在可信组网环境下,多个相互组网认证的设备将各自创建的对象加入同一个 sessionId,使得加入的多个数据对象之间可以同步数据,也就是说,当某一数据对象属性发生变更时,其他数据对象会检测到这…