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.hqwc.cn/news/257066.html

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

相关文章

创建vue项目:vue脚手架安装、vue-cli安装,vue ui界面创建vue工程(vue2/vue3),安装vue、搭建vue项目开发环境(保姆级教程二)

今天讲解 Windows 如何利用脚手架创建 vue 工程,以及 vue ui 图形化界面搭建 vue 开发环境,这是这个系列的第二章,有什么问题请留言,请点赞收藏!!! 文章目录 1、安装vue-cli脚手架2、vue ui创建…

UI自动化测试工具的定义及重要性

UI自动化测试工具在现代软件开发中起着不可或缺的作用。它们能够提高测试效率、减少人为错误、提供全面的测试覆盖,并支持持续集成。通过有效使用UI自动化测试工具,开发团队可以提高软件质量,提供更可靠的应用程序,满足用户的需求…

Java网络编程,使用UDP实现TCP(一), 基本实现三次握手

简介: 首先我们需要知道TCP传输和UDP传输的区别,UDP相当于只管发送不管对方是否接收到了,而TCP相当于打电话,需要进行3次握手,4次挥手,所以我们就需要在应用层上做一些功能添加,如:…

408——知识点大杂烩

在完成专业课的一轮复习以及历年真题的学习后,发现选择题甚至个别大题的考点就单纯考对概念的理解,会就是会,不会想到脑壳疼都做不出来,而408的知识点主打一个多杂,所以过来整理一下笔记。本文的知识点主要是在我做题过…

2002-2021年全国各地级市环境规制18个相关指标数据

2002-2021年全国各地级市环境规制18个相关指标数据 1、时间:2002-2021年 2、来源:城市年鉴 3、指标:行政区划代码、地区、年份、工业二氧化硫排放量(吨)、工业烟粉尘排放量(吨)、工业废水排放量(万吨)、工业废水排放达标量(万吨)、工业二氧…

dell服务器安装PERCCLI

因在linux 系统中无法查看系统磁盘的raid级别,也无法得知raid状态,需要安装额外的包来监控,因是dell服务器,就在dell网站中下载并安装 1、下载链接:驱动程序和下载 | Dell 中国https://www.dell.com/support/home/zh-…

互联网Java工程师面试题·RabbitMQ篇

目录 1、什么是 rabbitmq 2、为什么要使用 rabbitmq 3、使用 rabbitmq 的场景 4、如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息? 5、如何避免消息重复投递或重复消费? 6、消息基于什么传输? 7、消息如…

设计模式基础——概述(1/2)

目录 一、设计模式的定义 二、设计模式的三大类别 三、设计模式的原则 四、主要设计模式目录 4.1 创建型模式(Creational Patterns) 4.2 结构型模式(Structural Patterns) 4.3 行为型模式(Behavioral Patterns&…

Java---线程讲解(二)

文章目录 1. Runnable接口2. 卖票案例3. 同步代码块解决数据安全问题4. 同步方法解决数据安全问题5. 线程安全的类6. Lock锁 1. Runnable接口 1. 创建线程的另一种方法是声明一个实现Runnable接口的类,之后重写run()方法,然后可以分配类的实例&#xff0…

利用eclipse导入外部java工程

利用eclipse导入外部java工程,打开eclipse,依次点击File-Import,…按下图依次执行…

Facebook引流脚本的优势与编写教程!

在当今的数字化时代,社交媒体已经成为企业进行营销和推广的重要渠道之一,Facebook作为全球最大的社交媒体平台之一,拥有数十亿的用户,为企业提供了无限的引流可能性。 然而,对于企业来说,在Facebook上吸引…

uni-app 微信小程序之好看的ui登录页面(四)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面(一) uni-app 微信小程序之好看的ui登录页面(二) uni-app 微信小程序之好看的ui登录页面(三) uni-app 微信小程…