MySQL知识点总结(持续更新)
聚合函数通常用于对数据进行统计和聚合操作。以下是一些常见数据库系统(如 MySQL、PostgreSQL、Oracle、SQL Server 等)中常用的聚合函数:
常见的数据库聚合函数:
-
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 BY
语句一起使用,以便对分组后的数据进行聚合操作。
SQL 查询中常用的关键词可以根据功能分为以下几类:
数据定义语言(DDL)
用于定义和管理数据库结构:
-
CREATE
:创建数据库或数据库对象(如表、视图、索引等)。 -
ALTER
:修改数据库或数据库对象的结构。 -
DROP
:删除数据库或数据库对象。 -
TRUNCATE
:删除表中的所有数据,但保留表结构。
数据操作语言(DML)
用于操作数据库中的数据:
-
SELECT
:查询数据。 -
INSERT
:插入新数据。 -
UPDATE
:更新现有数据。 -
DELETE
:删除数据。
数据控制语言(DCL)
用于管理数据库的访问权限:
-
GRANT
:授予用户对数据库的访问权限。 -
REVOKE
:撤销用户的访问权限。
数据库事务控制语言(TCL)
用于管理数据库事务:
-
COMMIT
:提交事务,使所有更改永久生效。 -
ROLLBACK
:回滚事务,撤销所有未提交的更改。 -
SAVEPOINT
:设置事务的保存点,以便在发生错误时可以回滚到该点。
其他常见关键词
1. 数据查询与过滤
-
SELECT
:查询数据-- 查询所有列 SELECT * FROM employees;-- 查询特定列 SELECT employee_id, first_name, last_name, salary FROM employees;
-
WHERE
:条件过滤-- 等值查询 SELECT * FROM employees WHERE department_id = 5;-- 范围查询 SELECT * FROM employees WHERE salary BETWEEN 5000 AND 10000;-- 模糊查询 SELECT * FROM employees WHERE last_name LIKE 'A%';-- 多条件查询 SELECT * FROM employees WHERE department_id = 5 AND salary > 5000;
-
HAVING
:聚合条件过滤SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id HAVING AVG(salary) > 5000;
2. 数据排序
-
ORDER BY
:排序-- 单列排序 SELECT * FROM employees ORDER BY salary DESC;-- 多列排序 SELECT * FROM employees ORDER BY department_id ASC, salary DESC;
3. 数据分组
-
GROUP BY
:分组-- 按部门分组,计算每个部门的员工数 SELECT department_id, COUNT(*) AS employee_count FROM employees GROUP BY department_id;-- 按部门分组,计算每个部门的平均工资 SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id;
4. 连接操作
-
INNER JOIN
:内连接SELECT employees.employee_id, employees.first_name, departments.department_name FROM employees INNER JOIN departments ON employees.department_id = departments.department_id;
-
LEFT JOIN
:左连接SELECT employees.employee_id, employees.first_name, departments.department_name FROM employees LEFT JOIN departments ON employees.department_id = departments.department_id;
-
RIGHT JOIN
:右连接SELECT employees.employee_id, employees.first_name, departments.department_name FROM employees RIGHT JOIN departments ON employees.department_id = departments.department_id;
-
FULL JOIN
:全连接SELECT employees.employee_id, employees.first_name, departments.department_name FROM employees FULL JOIN departments ON employees.department_id = departments.department_id;
5. 子查询
-
IN
:值在子查询结果集中SELECT employee_id, first_name, last_name FROM employees WHERE department_id IN (SELECT department_id FROM departments WHERE location_id = 1001);
-
EXISTS
:子查询返回至少一行SELECT employee_id, first_name, last_name FROM employees WHERE EXISTS (SELECT 1 FROM departments WHERE department_id = employees.department_id AND location_id = 1001);
-
ANY
:与子查询返回的值进行比较,满足任意一个条件SELECT employee_id, first_name, last_name FROM employees WHERE salary > ANY (SELECT salary FROM employees WHERE department_id = 5);
-
ALL
:与子查询返回的值进行比较,满足所有条件SELECT employee_id, first_name, last_name FROM employees WHERE salary > ALL (SELECT salary FROM employees WHERE department_id = 5);
6. 表达式和条件判断
-
AS
:指定别名SELECT employee_id AS id, first_name AS fname, last_name AS lname, salary * 12 AS annual_salary FROM employees;
-
CASE
:条件表达式SELECT employee_id, first_name, last_name, salary,CASEWHEN salary > 10000 THEN 'High'WHEN salary BETWEEN 5000 AND 10000 THEN 'Medium'ELSE 'Low'END AS salary_level FROM employees;
7. 事务控制
-
COMMIT
:提交事务-- 提交事务,使所有更改永久生效 COMMIT;
-
ROLLBACK
:回滚事务-- 回滚事务,撤销所有未提交的更改 ROLLBACK;
-
SAVEPOINT
:设置事务的保存点-- 设置保存点 SAVEPOINT sp1;-- 执行一些操作 UPDATE employees SET salary = salary * 1.1 WHERE department_id = 5;-- 回滚到保存点 ROLLBACK TO SAVEPOINT sp1;
8. 其他常用操作
-
UNION
:合并两个或多个SELECT
语句的结果集(去重)SELECT employee_id, first_name, last_name FROM employees WHERE department_id = 5 UNION SELECT employee_id, first_name, last_name FROM employees WHERE salary > 10000;
-
UNION ALL
:合并两个或多个SELECT
语句的结果集(不去重)SELECT employee_id, first_name, last_name FROM employees WHERE department_id = 5 UNION ALL SELECT employee_id, first_name, last_name FROM employees WHERE salary > 10000;
-
VIEW
:创建或替换视图-- 创建视图 CREATE VIEW high_salary_employees AS SELECT employee_id, first_name, last_name, salary FROM employees WHERE salary > 10000;-- 查询视图 SELECT * FROM high_salary_employees;
-
INDEX
:创建或删除索引-- 创建索引 CREATE INDEX idx_employee_last_name ON employees (last_name);-- 删除索引 DROP INDEX idx_employee_last_name;
-
EXPLAIN
:显示 SQL 语句的执行计划EXPLAIN SELECT * FROM employees WHERE last_name = 'Smith';
相关文章:
MySQL知识点总结(持续更新)
聚合函数通常用于对数据进行统计和聚合操作。以下是一些常见数据库系统(如 MySQL、PostgreSQL、Oracle、SQL Server 等)中常用的聚合函数: 常见的数据库聚合函数: COUNT():计算指定列中非空值的数量 SELECT COUNT(*) …...

全新开发-iVX图形化编程VS完整IDE
本文针对传统软件开发的效率与可控性矛盾,系统阐释 iVX"图形化编程 全栈 IDE" 的复合架构如何突破行业瓶颈。通过 "可视化建模 - 标准代码生成 - 独立运行" 的技术闭环,iVX 实现开发效率提升 60% 与源码完全可控的双重目标。研究揭…...
【android bluetooth 协议分析 12】【A2DP详解 1】【车机侧蓝牙音乐免切源介绍】
“车机蓝牙音乐免切源” 是近年来车载系统(IVI,In-Vehicle Infotainment)中常见的一个用户体验优化功能。它主要是为了简化蓝牙音乐播放流程、减少用户操作,提升使用便捷性。 一、什么是“切源”? 在车机系统中&#…...

【Linux系列】跨平台安装与配置 Vim 文本编辑器
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
蓝桥杯题库经典题型
1、数列排序(数组 排序) 问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<n<200 输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式 输出…...
Spring Boot整合MyBatis全攻略:原理剖析与最佳实践
MyBatis作为Java生态中最流行的ORM框架之一,与Spring Boot的结合极大地简化了数据库访问层的开发。本文将深入剖析Spring Boot整合MyBatis的核心机制,详细介绍各种使用方式,并分享实际开发中的高级技巧和最佳实践。 一、Spring Boot与MyBati…...

十天学会嵌入式技术之51单片机—day-10
第 20 章 18B20 温度检测 20.1 18B20 概述 20.1.1 简介 18B20 是一种常用的数字温度传感器,广泛应用于环境监测、工业控制、家居自动化 和设备温度监控等领域。 20.1.2 引脚功能 18B20 引脚功能如下图所示,需要特别强调的是,18B20 采用 1-…...

【C++】17. 多态
上一章节中我们讲了C三大特性的继承,这一章节我们接着来讲另一个特性——多态 1. 多态的概念 多态(polymorphism)的概念:通俗来说,就是多种形态。多态分为编译时多态(静态多态)和运行时多态(动态多态),这里我们重点讲运行时多态…...
Excel的详细使用指南
### **一、Excel基础操作** #### **1. 界面与基本概念** - **工作簿(Workbook)**:一个Excel文件(扩展名.xlsx)。 - **工作表(Worksheet)**:工作簿中的单个表格(默认名…...
没经过我同意,flink window就把数据存到state里的了?
欢迎关注我 不知道大家在初次使用Flink的时候,是否对Flink中定义本地变量和状态比较好奇,这俩有啥区别? 而且在使用Window API时明明没有显式地创建状态,也没调用getState(),却依然把每个窗口里的所有元素都自动缓存…...
Python+OpenCV打造AR/VR基础框架:从原理到实战的全链路解析
引言:重新定义数字与现实的边界 在元宇宙概念持续升温的当下,AR(增强现实)与VR(虚拟现实)技术正成为连接物理世界与数字世界的桥梁。Python凭借其丰富的计算机视觉生态(尤其是OpenCV库…...

家用或办公 Windows 电脑玩人工智能开源项目配备核显的必要性(含 NPU 及显卡类型补充)
一、GPU 与显卡的概念澄清 首先需要明确一个容易误解的概念:GPU 不等同于显卡。 显卡和GPU是两个不同的概念。 【概念区分】 在讨论图形计算领域时,需首先澄清一个常见误区:GPU(图形处理单元)与显卡(视…...

实现一个简单的 TCP 客户端/服务器
注意: TCP 三次握手建立连接建立连接后,TCP 提供全双工的通信服务,也就是在同一个连接中,通信双方 可以在同一时刻同时写数据,相对的概念叫做半双工,同一个连接的同一时刻,只能由一方来写数据T…...

对抗帕金森:在疾病阴影下,如何重掌生活主动权?
帕金森病,一种影响全球超 1000 万人的神经退行性疾病,正无声地改变着患者的生活轨迹。随着大脑中多巴胺分泌减少,患者逐渐出现肢体震颤、肌肉僵硬、步态迟缓等症状,甚至连扣纽扣、端水杯这类日常动作都变得艰难。更棘手的是&#…...

鸿蒙 UIAbility组件与UI的数据同步和窗口关闭
使用 EventHub 进行数据通信 Stage模型概念图 根据 Stage 模型概念图 UIAbility 先于 ArkUI Page 创建 所以,事件要先 .on 订阅 再 emit 发布 假如现在有页面 Page1 和他的 UIAbility // src/main/ets/page1ability/Page1Ability.ets onCreate(want: Want, laun…...
DeepSeek 赋能汽车全生态:从产品到服务的智能化跃迁
目录 一、引言二、DeepSeek 助力汽车产品介绍与推广2.1 新车性能参数与技术亮点宣传文案2.2 汽车品牌故事与文化内涵挖掘2.3 汽车广告创意与宣传方案设计 三、DeepSeek 赋能汽车售后服务支持3.1 汽车维修保养知识科普文章创作3.2 常见故障诊断与解决方案生成3.3 汽车用户个性化…...
MQTT 在Spring Boot 中的使用
在 Spring Boot 中使用 MQTT 通常会借助 Spring Integration 项目提供的 MQTT 支持。这使得 MQTT 的集成可以很好地融入 Spring 的消息驱动和企业集成模式。 以下是如何在 Spring Boot 中集成和使用 MQTT 的详细步骤: 前提条件: MQTT Brokerÿ…...

Vue3学习(组合式API——计算属性computed详解)
目录 一、计算属性computed。 Vue官方提供的案例。(普通写法与计算属性写法) 使用计算属性computed重构——>简化描述响应式状态的复杂逻辑。 (1)计算属性computed小案例。 <1>需求说明。(筛选原数组——>得新数组) &…...
Spring 中的 @ComponentScan注解详解
在 Spring 框架中,@ComponentScan 是一个非常重要的注解,它用于自动扫描和注册 Bean。通过该注解,Spring 能够自动发现并管理标注了特定注解的类(如 @Component, @Service, @Repository 等),从而实现依赖注入和容器管理。 本文将详细介绍 @ComponentScan 的作用、常见搭…...
MySQL 数据库故障排查指南
MySQL 数据库故障排查指南 本指南旨在帮助您识别和解决常见的 MySQL 数据库故障。我们将从问题识别开始,逐步深入到具体的故障类型和排查步骤。 1. 问题识别与信息收集 在开始排查之前,首先需要清晰地了解问题的现象和范围。 故障现象: 数…...

Android Studio 模拟器配置方案
Android Studio 模拟器配置方案 1.引言2.使用Android Studio中的模拟器3.使用国产模拟器1.引言 前面介绍【React Native基础环境配置】的时候需要配置模拟器,当时直接使用了USB调试方案,但是有些时候可能不太方便连接手机调试,比如没有iPhone调不了ios。接下来说明另外两种可…...

k8s中ingress-nginx介绍
1. 介绍 Ingress是一种Kubernetes资源,用于将外部流量路由到Kubernetes集群内的服务。与NodePort相比,它提供了更高级别的路由功能和负载平衡,可以根据HTTP请求的路径、主机名、HTTP方法等来路由流量。可以说Ingress是为了弥补NodePort在流量…...
键盘输出希腊字符方法
在不同操作系统中,输出希腊字母的方法有所不同。以下是针对 Windows 和 macOS 系统的详细方法,以及一些通用技巧: 1.Windows 系统 1.1 使用字符映射表 字符映射表是一个内置工具,可以方便地找到并插入希腊字母。 • 步骤…...

字节DeerFlow开源框架:多智能体深度研究框架,实现端到端自动化研究流程
🦌 DeerFlow DeerFlow(Deep Exploration and Efficient Research Flow)是一个社区驱动的深度研究框架,它建立在开源社区的杰出工作基础之上。目标是将语言模型与专业工具(如网络搜索、爬虫和Python代码执行࿰…...
MySQL 存储函数[特殊字符] VS 存储过程[特殊字符]
1、存储函数😸 一、存储函数概述 存储函数是MySQL中一种特殊的存储程序,具有以下特点: 返回单个值:必须通过RETURN语句返回明确的结果SQL表达式使用:可以直接在SQL语句中调用输入参数:只接受输入参数(隐…...
reactor实现TCP遇到的问题和探究
struct conn{ int fd; char rbuffer[1024]; char wbuffer[1024]; int wlength; int rlength; int (*recv_cb)(int); int (*send_cb)(int); }; int (*recv_cb)(int); recv_cb:函数指针的名称*recv_cb:星号 * 表示 recv_cb 是一个指针。(*recv_cb)&#…...
ElasticSearch重启之后shard未分配问题的解决
以下是Elasticsearch重启后分片未分配问题的完整解决方案,结合典型故障场景与最新实践: 一、快速诊断定位 检查集群状态 GET /_cluster/health?pretty # status为red/yellow时需关注unassigned_shards字段值 2.查看未分配分片详情 …...

算法第十八天|530. 二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
530. 二叉搜索树的最小绝对差 题目 思路与解法 第一想法: 一个二叉搜索树的最小绝对差,从根结点看,它的结点与它的最小差值一定出现在 左子树的最右结点(左子树最大值)和右子树的最左结点(右子树的最小值…...
QMK键盘编码器(Encoder)(理论部分)
QMK键盘编码器(Encoder)(理论部分) 前言 作为一名深耕机械键盘DIY多年的老司机,我发现很多键盘爱好者对QMK编码器的配置总是一知半解。今天我就把多年积累的经验毫无保留地分享给大家,从硬件接线到软件配置,从基础应用到高阶玩法,一文全搞定!保证看完就能让你的编码…...

微服务调试问题总结
本地环境调试。 启动本地微服务,使用公共nacos配置。利用如apifox进行本地代码调试解决调试问题。除必要的业务微服务依赖包需要下载到本地。使用mvn clean install -DskipTests进行安装启动前选择好profile环境进行启动,启动前记得mvn clean清理项目。…...