MySQL学习记录1【DQL和DCL】
SQL学习记录
该笔记从DQL处开始记录
DQL之前值得注意的点
字段 BETWEEN min AND max可以查询区间[min, max]的数值- 如果同一个字段需要满足多个OR条件,可以采取
字段 IN(数值1, 数值2, 数值3....) - LIKE语句
字段 LIKE '___%%%'表示模糊匹配,_匹配一个字段,%匹配不确定个字段
DQL
SELECT字段列表
FROM表名
WHERE条件列表
GROUP BY分组字段列表
HAVING分组后的条件列表
ORDER BY排序字段列表
LIMIT分页参数;
1. 聚合函数
常见的聚合函数:
| 函数 | 功能 |
|---|---|
| COUNT() | 计算非空值的数量。 |
| SUM() | 计算一列数值的总和。 |
| MAX() | 返回一列中的最大值。 |
| MIN() | 返回一列中的最小值。 |
| AVG() | 计算一列数值的平均值。 |
2. 分组查询
SELECT 字段列表
FROM 表名
WHERE 条件
GROUP BY 分组字段名
HAVING 分组后的过滤条件;
- 查询数据先通过WHERE的条件进行过滤,随后通过GROUP BY 进行分组,分组之后,又通过HAVING字段来进行过滤分组的结果。
- 与此同时,HAVING可以对聚合函数进行判断,WHERE则不行.
3. 排序查询
SELECT 字段列表
FROM 表名
ORDER BY 字段1 排序方式1, 字段2 排序方式2;
- 先按字段1排序,再按字段2排序,以此类推
- ASC(默认升序,从小到大),DESC(从大到小,降序)
4. 分页查询
SELECT 字段列表
FROM 表名
LIMIT 起始索引, 查询记录数;
- LIMIT是如何查询的?假设你要查询第n页,每一页有m条数据,那么起始索引就是 (n - 1) * m。
- 另一种思路,你查询到的区间可以表示为 (起始索引,起始索引 + 查询记录数]
5. 执行顺序
FROM #首先确定要查询的数据源表,从中提取数据。
WHERE #在 FROM 后,用 WHERE 子句来过滤数据,限制结果集中的行。
GROUP BY #对满足 WHERE 条件的结果集进行分组。
HAVING #对分组后的结果集进行进一步过滤,限于满足条件的分组。
SELECT #选择要返回的列,最终确定结果集中包含哪些字段。
ORDER BY #对最终的结果集进行排序。
LIMIT #限制返回的结果集的行数,可以用于分页。
tips:
- 关于别名:
- 列别名:在
SELECT语句中定义。 - 表别名:在
FROM子句中定义。 - 子查询别名:在子查询的后面定义。
- 列别名:在
- 在定义别名之后,要注意各个语句的执行顺序,只有在执行定义了别名的语句之后才可以在接下来的语句使用别名
DCL
1. 用户管理
| 操作 | 语法 | 说明 |
|---|---|---|
| 查询用户 | SELECT * FROM mysql.user; | 查看所有用户信息 |
| 创建用户 | CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; | 创建用户,指定用户名、主机名和密码 |
| 修改密码 | ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_naive_password BY '新密码'; | 修改用户密码 |
| 删除用户 | DROP USER '用户名'@'主机名'; | 删除用户 |
2. 权限管理
| 操作 | 语法 | 说明 |
|---|---|---|
| 查询权限 | SHOW GRANTS FOR '用户名'@'主机名'; | 查看用户的权限 |
| 授予权限 | GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名'; | 授予用户对指定数据库或表的权限 |
| 撤销权限 | REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名'; | 撤销用户对指定数据库或表的权限 |
3. 常用权限列表
| 权限 | 说明 |
|---|---|
ALL 或 ALL PRIVILEGES | 所有权限 |
SELECT | 查询数据 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
DELETE | 删除数据 |
ALTER | 修改表结构 |
DROP | 删除数据库、表或视图 |
CREATE | 创建数据库或表 |
4. 注意事项
- 主机名:可以使用
%通配符表示所有主机。 - 权限列表:多个权限用逗号分隔,例如
SELECT, INSERT, UPDATE。 - 通配符:在授权时,数据库名和表名可以使用
*通配符,例如*.*表示所有数据库和表。
结语
最近做了一个Demo,又看了几篇文章,做了几道题,发现自己的建表,查表这些确实还有待优化,所以决定系统地学一下MySQL,目前是跟着黑马学习,挖了一个新坑,希望能坚持下去吧~
相关文章:
MySQL学习记录1【DQL和DCL】
SQL学习记录 该笔记从DQL处开始记录 DQL之前值得注意的点 字段 BETWEEN min AND max 可以查询区间[min, max]的数值如果同一个字段需要满足多个OR条件,可以采取 字段 IN(数值1, 数值2, 数值3....)LIKE语句 字段 LIKE ___%%% 表示模糊匹配,_匹配一个字段…...
验证码转发漏洞
开发人员有时候会以数组的形式接收用户的手机号并遍历执行,这时就可以在注册或登录页面填写两个手机号并点击发送验证码,这两个手机号会同时收到相同验证码,可以用任意一个手机号登录或注册,即验证码转发漏洞。 1、burpsuite内置…...
使用 C++ 实现神经网络:从基础到高级优化
引言 在现代机器学习中,神经网络已经成为最重要的工具之一。虽然 Python 提供了诸如 TensorFlow、PyTorch 等强大的机器学习库,但如果你想深入理解神经网络的实现原理,或者出于某些性能、资源限制的考虑,使用 C 来实现神经网络会是…...
【WRF运行报错】总结WRF运行时报错及解决方案(持续更新)
目录 ./real.exe错误1:ERROR while reading namelist physics./wrf.exe错误1:FATAL CALLED FROM FILE: <stdin> LINE: 2419 Warning: too many input landuse types参考./real.exe 错误1:ERROR while reading namelist physics 执行./real.exe时,报错如下: taski…...
Kotlin语言的循环实现
Kotlin语言中的循环实现 Kotlin是一种现代的、跨平台的编程语言,广泛应用于Android开发、后端服务及多种其他软件开发领域。与Java类似,Kotlin也支持多种循环结构,包括for循环、while循环和do while循环。掌握这些循环结构是每个Kotlin开发者…...
基于CNN的人脸识别考勤管理系统实现
随着技术的不断进步,人脸识别技术已经在各行各业得到了广泛的应用,尤其在 考勤管理 上,它提供了更加智能、便捷、精准的解决方案。本篇博客将介绍如何基于 PyQt5 和 MySQL 实现一个 人脸识别考勤系统,并通过具体代码展示如何通过图…...
Android基于回调的事件处理
Android 中的回调机制:基于回调的事件处理详解 在 Android 开发中,回调(Callback)是一种常见的事件处理机制,主要用于异步操作和事件通知。与传统的基于监听器的事件处理相比,回调机制更加灵活、通用&…...
postgis和地理围栏
postgis postgis是pg数据库的一个插件,除原数据类型外(int varchar)、新增了空间数据类型(geography和geometry)。比如我们新建一张道路表road(字段有名称varchar、建设时间timestamp、地理位置geometry),可以将道路名字、建设时间存进去,同…...
《鸿蒙系统AI技术:筑牢复杂网络环境下的安全防线》
在当今数字化时代,复杂网络环境给智能系统带来了诸多安全挑战,而鸿蒙系统中的人工智能技术却展现出强大的安全保障能力,为用户在复杂网络环境中的安全保驾护航。 微内核架构:安全基石 鸿蒙系统采用微内核架构,将核心…...
SQL SERVER__RSN 恢复的深入解析
1. RSN 的工作原理 RSN 是 SQL Server 内部用于跟踪和管理备份和恢复操作顺序的编号。每次数据库备份(包括完整备份、差异备份和事务日志备份)都会生成一个唯一的 RSN。SQL Server 在恢复过程中使用 RSN 来确保备份文件按正确的顺序应用,从而…...
面试加分项:Android Framework PMS 全面概述和知识要点
在Android面试时,懂得越多越深android framework的知识,越为自己加分。 目录 第一章:PMS 基础知识 1.1 PMS 定义与工作原理 1.2 PMS 的主要任务 1.3 PMS 与相关组件的交互 第二章:PMS 的核心功能 2.1 应用安装与卸载机制 2.2 应用更新与版本管理 2.3 组件管理 第…...
Http协议封装
Myhttp封装http协议 源代码 #include <iostream> #include <cstring> #include <string> #include <thread> #include <atomic> #include <fstream> // 添加文件操作头文件#ifdef _WIN32 #include <winsock2.h> #include <ws2t…...
el-date-picker 禁用一个月前、一个月后(当天之后)的时间 datetimerange
文章目录 功能需求今天是 2025-01-09示例1示例2 代码 Vue2 功能需求 时间范围选择器,最大时间选择尺度为一个月。 今天是 2025-01-09 示例1 选择 2025-01-02 日 禁用未来日期(2025-01-09之后日期) 禁用上月2号(31日之前&#…...
【C】编译与链接
在本文章里面,我们讲会讲解C语言程序是如何从我们写的代码一步步变成计算机可以执行的二进制指令,并最终执行的。C语言程序运行主要包括两大步骤 -- 编译和链接,接下来我们就来一一讲解。 目录 1 翻译环境和运行环境 2 翻译环境 1&#…...
Github上传项目
写在前面: 本次博客仅仅是个人学习记录,不具备教学作用。内容整理来自网络,太多了,所以就不放来源了。 在github页面的准备: 输入标题。 往下滑,创建 创建后会跳出下面的页面 进入home就可以看到我们刚…...
webrtc之rtc::ArrayView<const uint8_t>
rtc::ArrayView<const uint8_t> 是 WebRTC(或其他基于 rtc 命名空间的库)中常见的一个类型,它通常用于表示一块 只读的内存区域,该内存区域由一系列 uint8_t 类型(无符号 8 位整数)元素组成。 1. rt…...
Zemax 序列模式下的扩束器
扩束器结构原理 扩束器用于增加准直光束(例如激光束)的直径,同时保持其准直。它通常用于激光光学和其他需要修改光束大小或发散度的应用。 在典型的扩束器中,输入光束是准直激光器,或光束进入第一个光学元件。当光束开…...
Flink系统知识讲解之:如何识别反压的源头
Flink系统知识之:如何识别反压的源头 什么是反压 Ufuk Celebi 在一篇古老但仍然准确的文章中对此做了很好的解释。如果您不熟悉这个概念,强烈推荐您阅读这篇文章。如果想更深入、更低层次地了解该主题以及 Flink 网络协议栈的工作原理,这里有…...
RK3568平台(USB篇)禁用USB端口
一.linux中怎样查看usb的端口号 在USB口插入U盘: [ 198.141319][ T106] usb 3-1.3: new SuperSpeed Gen 1 USB device number 5 using xhci-hcd [ 198.161695][ T106] usb 3-1.3: New USB device found, idVendor=0781, idProduct=5591, bcdDevice= 1.00 [ 198.161721]…...
洛谷 P3000 [USACO10DEC] Cow Calisthenics G
思路 题目要求断若干条边后形成的连通块中,最大的直径最小,很明显的二分。关键就在于如何写 c h e c k check check 函数了。 可以用 d f s dfs dfs 来判断要断哪条边。 一、 d [ u ] d[u] d[u] 定义 设 d [ u ] d[u] d[u] 为从 u u u 出发到子树…...
LinkFinder收集接口
LinkFinder可以自动化收集站点的api接口先用linkfinder爬去该js文件中所有的接口,再用正则表达式进行数据清洗,得到我们想要的api接口python3 linkfinder.py -i "https://example.com/static/js/example.js" -o cli > api.txt接着我们需要去…...
自动化内容创作:OpenClaw+Qwen3.5-9B批量处理游记照片生成博客
自动化内容创作:OpenClawQwen3.5-9B批量处理游记照片生成博客 1. 为什么需要自动化内容创作流水线 去年夏天我从西藏旅行回来,手机里存了800多张照片。当我坐在电脑前准备写游记时,面对海量素材突然感到无从下手——每张照片都需要回忆拍摄…...
哈夫曼编码实战:从电文压缩到代码实现(附完整Python示例)
哈夫曼编码实战:从电文压缩到代码实现(附完整Python示例) 在数据存储和传输领域,压缩算法始终扮演着关键角色。想象一下,当你需要处理数百万条日志记录,或是传输高分辨率医学影像时,未经压缩的原…...
Spring IOC 注解进阶:@Bean 管理第三方 Bean,@Import 拆分配置,@Value 注入资源(Spring系列5)
在日常Spring开发中,我们习惯用Component、Service、Repository这类注解标记自己编写的业务类,让Spring自动扫描并纳入IOC容器管理。但如果是第三方Jar包中的类(比如Druid数据源、第三方工具类),我们无法修改源码添加注…...
OpenClaw邮件处理方案:Qwen2.5-VL-7B自动分类与回复
OpenClaw邮件处理方案:Qwen2.5-VL-7B自动分类与回复 1. 为什么需要邮件自动化助手 每天早晨打开邮箱时,面对堆积如山的未读邮件总让人心生畏惧。作为技术从业者,我的收件箱里混杂着技术订阅、会议邀请、账单通知和各种推广信息,…...
Spring AI:Java开发者的AI应用开发利器
Spring AI:Java开发者的AI应用开发利器 一、什么是Spring AI Spring AI是一个专为AI工程应用设计的AI应用程序框架,它将AI模型的能力集成到Spring生态系统之中。作为Spring家族的新成员,Spring AI秉承了Spring的设计理念,为Java…...
RoboCore SMW_SX1276M0 LoRaWAN协议栈开发指南
1. 项目概述RoboCore SMW_SX1276M0 是一款面向嵌入式物联网终端的 LoRaWAN 协议栈封装库,专为 RoboCore LoRaWAN Bee v2.0 模块设计。该模块核心采用 Semtech SX1276 射频收发器,集成高灵敏度 LoRa 调制解调器、前向纠错(FEC)、自…...
实战演练:基于快马平台与zeroclaw理念构建高性能个人博客系统
最近在尝试用zeroclaw理念重构个人博客系统,发现这种极简高效的设计思路确实能大幅提升开发效率和运行性能。今天就来分享下基于InsCode(快马)平台实现的完整实战过程。 项目架构设计 zeroclaw的核心是"零冗余",所以在设计阶段就做了严格的功能…...
随堂笔记0403
负载监控计算机核心资源:CPU: 计算(lscpu)内存: 缓存数据(掉电丢失)硬盘: 持久化存储数据网络: 传播数据[rootCentos01 wyj]# lscpuCPU(s): 2型号名称&am…...
XPT2046触摸驱动设计与车载嵌入式集成实践
1. XPT2046 触摸控制器驱动技术解析与嵌入式集成实践XPT2046 是一款广泛应用于嵌入式人机交互系统的 12 位逐次逼近型(SAR)模数转换器(ADC),专为四线/五线电阻式触摸屏设计。其核心功能并非独立显示驱动,而…...
