MySQL数据库笔记(二)

ops/2025/1/13 2:58:58/

第一章 单行函数

1.1 什么是函数

函数的作用是把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在SQL中使用函数,极大地提高了用户对数据库的管理效率。

1.2 定义

操作数据对象。

接受参数返回一个结果。

只对一行进行变换。

每行返回一个结果。

可以嵌套。

参数可以是一列或一个值。

1.3 函数分类

1.3.1 数值函数

1.3.2 角度与弧度互换函数

1.3.3 三角函数

1.3.4 指数与对数

1.3.5 进制间的转换

1.3.6 字符串函数

注意:字符串的位置是从1开始的。

1.3.7 日期和时间函数

获取日期、时间:

日期与时间戳:

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

时间和秒钟转换的函数:

计算日期和时间的函数:

日期的格式化与解析:

1.3.8 流程控制函数

1.3.9 加密与解密

第二章 聚合函数

2.1 什么是聚合函数

聚合函数作用于一组数据,并对一组数据返回一个值。

2.2 聚合函数类型

AVG(),SUM(),MAX(),MIN(),COUNT()

聚合函数不能嵌套调用。比如不能出现类似“AVG(SUM(字段名称))”形式的调用。

2.3 GROUP BY

SELECT column,group_function(column)
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[ORDER BY column];

2.4 GROUP BY中使用WITH ROLLUP

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

SELECT department_id,AVG(salary)
FROM employee
WHERE department_id>80
GROUP BY department_id WITH ROLLUP;

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

2.4 HAVING

过滤分组:HAVING子句

1、行已经被分组

2、使用聚合函数

3、满足HAVING子句中条件的分组将被显示。

4、HAVING不能单独使用,必须要跟GROUP BY一起使用。

SELECT column,group_function
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];

非法使用聚合函数:不能在WHERE子句中使用聚合函数。

 WHERE和HAVING的对比

区别1:WHERE可以直接使用表中的字段作为筛选条件,但不能使用分组中的计算函数作为筛选条件;HAVING必须要与GROUP BY配合使用,可以把分组计算的函数和分组字段作为筛选条件。

区别2:如果需要通过连接从关联表中获取需要的数据,WHERE是先筛选后连接,而HAVING是先连接后筛选。

2.5 SELECT的执行过程

2.5.1 查询结构

SELECT
FROM
WHERE 多表的连接条件
AND 不包含组函数的过滤条件
GROUP BY
HAVING 包含组函数的过滤条件
ORDER BY ASE/DESC
LIMIT
#其中:
#1、from:从哪些表中筛选
#2、where:从表中筛选的条件
#3、group by:分组依据
#4、having:在统计结果中再次筛选
#5、order by:排序
#6、limit:分页

2.5.2 SELECT执行顺序

1.关键字的顺序是不能颠倒的:

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

2.SELECT语句的执行顺序:

FROM->WHERE->GROUP BY->SELECT->ORDER BY->LIMIT

第三章 子查询

3.1 定义

子查询指一个查询语句嵌套在另一个查询语句内部的查询。

3.2 子查询基本使用

语法结构:

SELECT select_list
FROM table
WHERE expr operator(SELECT select_listFROM table);

子查询(内查询)在主查询之前一次执行完成。

子查询的结果被主查询(外查询)使用。

注意事项:

子查询要包含在括号内

将子查询放在比较条件的右侧

单行操作符对应单行子查询,多行操作符对应多行子查询

3.3 子查询的分类

单行子查询:

单行子查询操作符:

多行子查询:

多行子查询操作符࿱


http://www.ppmy.cn/ops/52850.html

相关文章

Nvidia Isaac Sim组装机器人和添加传感器 入门教程 2024(5)

Nvidia Isaac Sim 入门教程 2024 版权信息 Copyright 2023-2024 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. …

HBase的概念、运行原理及分析

HBase 是一个分布式的、面向列的开源数据库,由 Apache 软件基金会维护,基于 Google 的 Bigtable 论文设计。它运行在 Hadoop 文件系统(HDFS)之上,并且能够处理大规模结构化数据的存储和访问。主要特点包括:…

新能源革命风起云涌:创新科技引领可持续发展新篇章

随着全球气候变化和环境问题日益严峻,新能源革命正以其不可阻挡的势头,席卷着世界的每一个角落。 创新科技在这场革命中发挥着至关重要的作用,它不仅是新能源开发利用的引擎,更是推动可持续发展的关键力量。 新能源革命的核心在于…

AI智能时代:ChatGPT如何在金融市场发挥策略分析与预测能力?

文章目录 一、ChatGPT在金融策略制定中的深度应用客户需求分析与定制化策略市场动态跟踪与策略调整策略分析与优化 二、ChatGPT在算法交易中的深度应用自动交易策略制定交易执行与监控风险管理 三、未来展望《智能量化:ChatGPT在金融策略与算法交易中的实践》亮点内…

YCSB基准测试

1、Redis: 下载成功后,加载数据,运行 启动redis: /usr/local/redis/bin/redis-server ./bin/ycsb load redis -P workloads/workloade -p redis.hostlocalhost -p redis.port6379 -p recordcount10000 -p operationcount10000 -threads 32 ./bin/y…

国内镜像源网址

腾讯:腾讯软件源 (tencent.com) 阿里:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com) 清华:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

Python+Vue+Springboot实现电脑端微信好友导入导出

主要实现思路是使用python的自动化库uiautomation进行客户端抓取联系人,vue做管理界面,springboot做后端服务。 截图如下 登录: 首页 好友导出 不足之处就是只有windows版本,mac上还不行 而且谷歌和edge浏览器的效果是最好的&a…

华为仓颉编程语言观感

这里写自定义目录标题 相似点(主要与Swift进行对比)不同点亮点 花了半天时间,对华为新出的仓颉编程语言做了简单的了解,整体观感如下: 仓颉语言看起来是一门大而全的语言,吸纳了现存的很多中编程语言的范式…