PowerQuery领域的经典之作“猴子书“中文版来啦!

与数据打交道,还在纠结于Excel、SQL、VBA、Python?数据处理领域经典之作PowerQuery"猴子书"让你用更聪明的方法处理数据。学完这本书,你就掌握了Power Query的一切,想要学Power Query,只需要这一本就够啦!

精通 Power Query

编辑推荐

适读人群 :
(1)需要处理数据的业务人员,如财务人员、HR;
(2)Excel用户、Power BI用户;
(3)Power Query新手;
(4)数据分析师等专业人员;
(5)经验丰富的ETL专家。

1. 广泛性:Power Query领域的经典之作“猴子书”,让你用更聪明的方法处理数据。

Excel用户可以仅仅通过学习Power Query配合Excel公式来完成导入数据、清理数据和转换数据,为后续分析数据做好准备,整个过程几乎零代码。

2. 平衡性:两位作者几乎完全互补,是 IT 和业务的完美组合。

本书并非简单粗暴的截图或单击流罗列,也不是枯燥的IT技术名词堆砌或公式排列。在本书中,可以大量感受到作者如何照顾业务伙伴的操作想法以及步步手把手的操作体验。同时,还有清晰、专业的 IT 解释辅助,这让从“小白”、业务用户到 IT 用户都能从中获益。这种平衡很难做到,而作者无疑做出了完美示范。业务伙伴读着不难,IT 用户读着“有干货”。

3. 系统性:给出了所需的抽象思维框架和系统化框架思考。

本书并非停留在介绍某种效果如何实现的简单表述,所谓“万变不离其宗”,在本书中,作者给出了高屋建瓴的系统化思考框架。例如,第2章就直接给出了查询的架构拆分设计思维,让人读之有种成为数据架构师的成就感,并迫不及待想将这些思路赶快“优化”到自己的工作中。

4. 实用性:给出了可以直接解决各种问题的解决方案模板。

本书并非简单功能大全或凸显神奇技巧,作者汇集了来自企业实战中的各种精华案例,例如日期表的构建(包括多种版本,如财务日期表),甚至目标的分摊。对照本书,所有内容都配有 Excel 或 Power BI 的实现案例,读者可以根据图书指引下载后直接使用。

本书作者肯.普尔斯(Ken Puls) 是加拿大特许专业会计师,微软 Excel MVP。他经营着 Excelguru 咨询公司,并通过 Skillwave培训平台教用户如何使用 Excel 和 Power BI。

米格尔.埃斯科瓦尔 (Miguel Escobar),在编写本书的时候是微软 Power BI MVP,并在巴拿马经营着一家名为 Powered Solutions 的咨询公司。在本书英文版即将出版时,米格尔收到一份令人兴奋的邀请函,即加入微软 Power Query 团队担任项目经理。

Pwwer Query是什么?

Power Query是微软“首席”自助式数据准备技术,可为非技术用户提供直观且高度可视化的体验,以便轻松连接到数百个数据源,用一致的习惯和方法清理和重塑数据,在后续数据报告、分析、低代码程序等场景中使用。在2010年它作为一个插件正式开始在Excel中被使用,现在它已经在超过8种不同的产品中被使用,包括Excel、Power BI、SQL Server In-tegration Services(SSIS)、Azure数据工厂等。

为什么选择这本“猴子书”作为学习PowerQuery的指南

在国内,关于Power Query的作品更多围绕操作细节和按钮解析,针对Power Query的运作逻辑,尤其是针对“怎么才算是清理到位了?”这个底层问题,很少有书能给予深入的解答。这本书由基础到进阶地介绍了Power Query和M函数,适用于各个阶段的读者学习:为初入门的小白构建了一套完整的Power Query知识体系,为专业人士提供了一系列优化查询的最佳实践,为业务伙伴指出了针对实际业务问题的解决方案。

详细目录

第0 章 导言:一场新的革命 1
0.1 数据分析师的常见场景 1
0.2 “魔法”的好处和危险 2
0.3 未来的改变 3
0.4  为什么说Power Query 有“魔力” 5
0.4.1 提取 5
0.4.2 转换 5
0.4.3 加载 6
0.5  Power Query 和产品体验的整合 7
0.5.1 Power Query 的组件 7
0.5.2 产品体验的整合 8
0.6 Power Query 的更新周期 8
0.6.1 Power Query 在线版 9
0.6.2 Microsoft 365 9
0.6.3 Excel 2016/2019/2021 9
0.6.4 Excel 2010 & 2013 9
0.6.5 Power BI 桌面版 10
0.7 如何使用本书 10
0.7.1 Microsoft 365 Excel 10
0.7.2 Power BI 桌面版 11
0.7.3 以前的Excel版本 11
0.7.4 单击“获取数据”按钮 11
0.7.5 特殊元素 12

第1 章 基础知识 13
1.1 开始之前 13
1.1.1 调整Excel默认设置 13
1.1.2  调整Power BI 桌面版默认设置 14
1.2 提取 14
1.2.1 选择数据 14
1.2.2 身份验证 15
1.2.3 预览窗口 15
1.2.4 查询处理 16
1.3 转换 17
1.3.1 编辑器 17
1.3.2 默认转换 18
1.3.3 源 18
1.3.4 将第一行用作标题 19
1.3.5 更改的类型 19
1.3.6 调整和修改转换 20
1.4 加载 22
1.4.1 设置数据类型 22
1.4.2 重命名查询 23
1.4.3 在Excel中加载查询 24
1.4.4 在Power BI 中加载查询 24
1.5 刷新查询 25
1.6 编辑查询 26
1.6.1 在Power BI 中启动查询编辑器 26
1.6.2 在Excel中启动查询编辑器 27
1.6.3 检查步骤 27
1.6.4 重新配置步骤 27
1.7 Power Query 的价值 29

第2 章 查询结构设计 31
2.1 使用多查询体系结构 31
2.1.1 对ETL进行分层 31
2.1.2 单个查询的好处 31
2.1.3 拆分查询的好处 32
2.1.4 关于“暂存”查询的   性能 32
2.2 查询的引用 34
2.2.1 创建基础查询 34
2.2.2 创建查询的引用 34
2.2.3 查询依赖关系树的可视化 37
2.2.4 使用Monkey工具查看依赖关系 38
2.3 选择查询加载目的地 38
2.3.1 在Power BI 中选择加载目的地 38
2.3.2 在Excel中选择加载目的地 39
2.3.3 更改加载目的地 41
2.4 保持查询的条理性 43
2.4.1 查询文件夹 43
2.4.2 将查询分配到文件夹 44
2.4.3 排列查询和文件夹 44
2.4.4 查询子文件夹 45
2.5 拆分现有查询 45
2.6 关于查询体系结构的最后思考 47

第3 章 数据类型与错误 49
3.1 数据类型与格式 49
3.1.1 数据格式 49
3.1.2 数据类型 49
3.1.3 如何设置数据格式 52
3.1.4 设置数据类型的顺序 53
3.1.5 数据类型的重要性 54
3.2 常见的错误类型 55
3.3 步骤级错误 56
3.3.1 数据源错误 56
3.3.2 没有找到某列 58
3.4 值错误 59
3.4.1 发现错误 60
3.4.2 无效的数据类型转换 61
3.4.3 不兼容的数据类型 63
3.5 检查查询错误 64
3.5.1 发现错误的来源 64
3.5.2 修复最初查询 65
3.5.3 删除错误查询 66
3.6 关于数据类型与错误的最后思考 66

第4 章 在Excel和Power BI间迁移查询 67
4.1 在工具之间迁移查询 67
4.1.1 Excel到Excel 68
4.1.2 Excel到Power BI 70
4.1.3 Power BI 到Excel 71
4.1.4 Power BI 到Power BI 71
4.2 导入查询 72
4.2.1 仅外部数据源 72
4.2.2 数据模型的导入 74
4.2.3 导入时复制数据 75
4.2.4 导入时保持连接 80
4.3 在工具之间迁移查询的思考 82

第5 章 从平面文件导入数据 84
5.1 了解系统如何导入数据 84
5.1.1 设置系统默认值 84
5.1.2 程序如何解析平面数据 85
5.2 导入带分隔符的文件 87
5.2.1 源数据文件 87
5.2.2 提取数据 88
5.2.3 错误的解析 88
5.2.4 使用区域设置 89
5.3 导入无分隔符的文本文件 92
5.3.1 连接到文件 92
5.3.2 清理无分隔符文件 93
5.3.3 按位置拆分列 94
5.3.4 利用查询中的错误 96
5.3.5 删除“垃圾列” 98
5.3.6 合并列 99
5.3.7 通过分隔符拆分列 99
5.3.8 修剪重复的空格 100
5.3.9 Power Query 的闪耀时刻 101

第6 章 从Excel导入数据 104
6.1 来自当前工作簿的数据 104
6.1.1 连接到表 105
6.1.2 连接到区域 106
6.1.3 连接到命名区域 108
6.1.4 连接到动态区域 110
6.1.5 连接到工作表 112
6.2 来自其他工作簿的数据 112
6.2.1 连接到文件 113
6.2.2 连接到表 114
6.2.3 连接到命名区域 115
6.2.4 连接到工作表 115
6.3 关于连接到Excel数据的最后思考 118

第7 章 常用数据转换 121
7.1 逆透视 121
7.1.1 准备数据 122
7.1.2 逆透视其他列 123
7.1.3 重新透视 124
7.1.4 应对变化 125
7.1.5 逆透视之间的区别 125
7.2 数据透视 126
7.3 拆分列 128
7.3.1 将列拆分为多列 129
7.3.2 将列拆分为多行 130
7.3.3 拆分后逆透视与拆分到行 131
7.4 筛选和排序 132
7.4.1 按特定值筛选 133
7.4.2 按上下文筛选 135
7.4.3 数据排序 137
7.5 数据分组 138

第8 章 纵向追加数据 141
8.1 基本追加 141
8.1.1 追加两个表 142
8.1.2 追加额外的表 145
8.2 追加列标题不同的数据 147
8.3 在当前文件中追加表和区域 148
8.3.1 合并表 149
8.3.2 合并区域或工作表 153
8.3.3 Excel.Current Workbook 155
8.4 关于追加查询的最后思考 155

第9 章 批量合并文件 156
9.1 示例文件背景介绍 156
9.2 过程概述 157
9.2.1 合并文件的标准流程 157
9.2.2 合并文件的通用架构 157
9.3 步骤0:连接到文件夹 159
9.3.1 连接到本地/ 网络文件夹 159
9.3.2 连接到SharePoint文件夹 160
9.3.3 连接到OneDrive for Business 162
9.3.4 连接到其他文件系统 162
9.4 步骤1:筛选文件 162
9.4.1 标准步骤 163
9.4.2 应用于示例场景 163
9.5 步骤2:合并文件 165
9.5.1 标准步骤 165
9.5.2 应用于示例场景 165
9.6 步骤3:转换示例文件 167
9.6.1 使用转换示例文件的原因 168
9.6.2 使用转换示例文件的方法 168
9.7 步骤4:通过主查询进行数据清理 171
9.7.1 修复主查询中的错误 171
9.7.2 保存文件属性 172
9.7.3 添加更多的步骤 173
9.8 更新解决方案 174
9.8.1 使用数据 175
9.8.2 添加新文件 175
9.8.3 只用最后几个文件以提升速度 176

第10 章 横向合并数据 179
10.1 合并基础知识 179
10.1.1 创建“暂存”查询 179
10.1.2 执行合并 180
10.2 连接类型 182
10.2.1 左外部连接 184
10.2.2 右外部连接 186
10.2.3 完全外部连接 187
10.2.4 内部连接 188
10.2.5 左反连接 189
10.2.6 右反连接 190
10.2.7 完全反连接 190
10.3 笛卡儿积(交叉连接) 191
10.3.1 方法 191
10.3.2 示例 192
10.3.3 意外问题 194
10.4 近似匹配 195
10.4.1 方法 195
10.4.2 示例 196
10.5 模糊匹配 198
10.5.1 基本模糊匹配 199
10.5.2 转换表 200
10.5.3 减小相似性阈值 201
10.5.4 保持模糊匹配的策略 203

第11 章 基于Web的数据源 204
11.1 连接到Web 数据文件 204
11.2 连接到HTML网页 205
11.2.1 连接到网页 206
11.2.2 自然表和建议表 206
11.2.3 使用示例添加表 207
11.3 连接到没有表的页面 209
11.4 从Web 获取数据的注意事项 212
11.4.1 收集数据的经验 213
11.4.2 数据完整性 213
11.4.3 解决方案稳定性 213

第12 章 关系数据源 214
12.1 连接到数据库 214
12.1.1 连接到数据库 214
12.1.2 管理凭据 216
12.1.3 无法连接 217
12.1.4 使用导航器 217
12.1.5 探索数据 218
12.2 查询折叠 221
12.2.1 理解查询折叠 221
12.2.2 支持查询折叠的技术 223
12.2.3 常见问题 224
12.3 数据隐私级别 225
12.3.1 声明数据隐私级别 226
12.3.2 管理数据隐私级别 227
12.3.3 隐私与性能 227
12.3.4 禁用隐私引擎 228
12.4 优化 230

第13 章 转换表格数据 233
13.1 透视 233
13.1.1 单列多行 233
13.1.2 多层行标题 237
13.1.3 多层列标题 239
13.2 逆透视 242
13.2.1 多层行标题 242
13.2.2 性能优化 248
13.2.3 重构 249
13.2.4 保留“null”值 250
13.3 分组 253
13.3.1 占总计的百分比 253
13.3.2 数据排序 254
13.3.3 分组编号 257

第14 章 条件逻辑 261
14.1 基础条件逻辑 261
14.1.1 数据集背景 261
14.1.2 连接到数据 262
14.1.3 通过用户界面创建条件逻辑 262
14.2 手动创建IF 判断 265
14.3 IFERROR函数 268
14.4 多条件判断 270
14.5 与上下行进行比较 273
14.6 示例中的列 276

第15 章 值系统 282
15.1 值类型 282
15.2 表 283
15.3 列表 284
15.3.1 语法 284
15.3.2 从头开始创建列表 284
15.3.3 将列表转换为表 286
15.3.4 从表列创建列表 287
15.3.5 创建列表的列表 288
15.4 记录 290
15.4.1 语法 290
15.4.2 从头开始创建记录 291
15.4.3 将记录转换为表 291
15.4.4 从头开始创建多个记录 292
15.4.5 将多个记录转换为表 293
15.4.6 按索引访问表记录 294
15.4.7 按条件访问表记录 295
15.4.8 从每个表行创建记录 298
15.5 值 300
15.6 二进制文件 300
15.7 错误 301
15.7.1 行级错误 301
15.7.2 步骤级错误 301
15.8 函数 302
15.9 关键词 304
15.9.1 二进制(#binary) 305
15.9.2 日期时间( #datetime) 306
15.9.3 时间(#time) 307
15.9.4 持续时间( #duration) 307
15.9.5 类型(type) 308
15.9.6 表(#table) 310

第16 章 理解M语言 314
16.1 M查询结构 314
16.1.1 查询结构 315
16.1.2 查询定义与标识符 316
16.1.3 关于通用标识符 318
16.1.4 代码注释 319
16.1.5 整体效果 320
16.2 理解查询计算 320
16.2.1 什么是延迟计算 321
16.2.2 查询计划 322
16.3 迭代器(逐行计算) 324
16.3.1 循环函数 324
16.3.2 关键词each和_ 324
16.4 其他技术 328
16.4.1 获取第一个值 328
16.4.2 错误保护 330
16.4.3 固定类型动态列表 331
16.4.4 自适应类型动态列表 334

第17 章 参数和自定义函数 338
17.1 重新创建合并文件 338
17.1.1 创建示例文件 339
17.1.2 创建示例文件参数 340
17.1.3 创建转换示例 341
17.1.4 创建转换函数 342
17.1.5 调用转换函数 342
17.1.6 更新转换函数 342
17.1.7 观察到的规律 343
17.2 使用参数构建自定义函数 344
17.2.1 创建文件路径参数 345
17.2.2 创建Timesheet转换 346
17.2.3 创建Timesheet函数 347
17.2.4 更新Timesheet查询 347
17.3 手动构建自定义函数 349
17.3.1 构建一个单一使用场景 350
17.3.2 将查询转换为函数 350
17.3.3 从另一个查询调用函数 352
17.3.4 调试自定义函数 353
17.3.5 恢复函数功能 355
17.4 动态参数表 355
17.4.1 动态文件路径问题 356
17.4.2 实现动态参数表 357
17.4.3 创建参数表 357
17.4.4 实现fnGetParameter函数功能 358
17.4.5 调用函数 359
17.5 参数表的意义 361

第18 章 处理日期时间 362
18.1 边界日期 362
18.1.1 计算边界日期 363
18.1.2 处理财政年度日期 364
18.1.3 处理364 日型 365
18.2 日期表 367
18.2.1 原子日期表 367
18.2.2 增强日期表 368
18.2.3 财政日期列 369
18.2.4 全局日期列 369
18.2.5 自定义日期表 371
18.2.6 示例说明 373
18.3 日期时间填充 374
18.3.1 日期级别填充 374
18.3.2 小时级别填充 376
18.3.3 带间隔的填充 377
18.4 按日期分摊 378
18.4.1 起止日内按日分摊 379
18.4.2 起止日内按月分摊 381
18.4.3 在开始日期后按月分摊 384
18.4.4 关于分摊 386

第19 章  查询优化 388
19.1 优化设置 388
19.1.1 全局−数据加载 388
19.1.2 全局−Power Query编辑器 388
19.1.3 全局−安全性 389
19.1.4 全局−隐私 389
19.1.5 当前工作簿−数据加载 389
19.1.6 当前工作簿−其他选项 390
19.2 使用缓存 391
19.2.1 强制计算 391
19.2.2 缓存结果 393
19.3 处理响应滞后 396
19.3.1 优化策略 397
19.3.2 体验响应滞后 397
19.3.3 重构解决方案 399
19.3.4 调整预览数据 401
19.4 处理公式防火墙 401
19.4.1 隐私级别不兼容 402
19.4.2 数据源访问 402
19.4.3 重建数据组合 402
19.4.4 连接式重构 404
19.4.5 展开式重构 406
19.4.6 传值重构 408
19.4.7 关于公式防火墙 410

第20 章 自动刷新 412

20.1 Excel自动刷新选项 412

20.2 Excel计划刷新 412

20.2.1 后台刷新 412

20.2.2 每x分钟刷新一次 413

20.2.3 打开文件时刷新数据 413

20.2.4 启用快速数据加载 413

20.3 用宏实现自动刷新 414

20.3.1 刷新单个连接 414

20.3.2 按特定顺序刷新 416

20.3.3 刷新所有查询 418

20.3.4 同步刷新的问题 418

20.4 Power BI 中的计划刷新 418

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

城市管理实景三维:打造智慧城市的新引擎

城市管理实景三维:打造智慧城市的新引擎 在城市管理领域,实景三维技术正逐渐成为推动城市发展的新引擎。通过以精准的数字模型呈现城市真实场景,实景三维技术为城市决策提供了全新的思路和工具。从规划设计到交通管理,从环境保护到…

代码随想录二刷 | 链表 |链表相交

代码随想录二刷 | 链表 |链表相交 题目描述解题思路 & 代码实现 题目描述 160.链表相交 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 题目数据 保…

【5k字长文 | Vue学习笔记】#1 认识Vue对象和基础语法

Vue是一个非常流行的渐进式JavaScript框架,渐进式指的是自底向上,从小组件逐渐向上构成整个项目,渐进式还可以理解为:用什么就拿什么,每个组件只做自己的事,尽可能解耦合。 本节我们将学习简单的Vue实例&a…

实验4.数据全量、增量、比较更新

【实验目的】 1.利用Kettle的“表输入”,“表输入出”,”JavaScript代码”组件,实现数据全量更新。 2.熟练掌握“JavaScript代码”,“表输入”,“表输入出”组件的使用,实现数据全量更新。 【实验原理】 …

2024法定节假日|除夕不放假?企业这样做员工更满意

国务院办公厅发布了 关于2024年部分节假日安排的通知 全文如下 各省、自治区、直辖市人民政府,国务院各部委、各直属机构: 经国务院批准,现将2024年元旦、春节、清明节、劳动节、端午节、中秋节和国庆节放假调休日期的具体安排通知如下。 …

【OpenCV实现图像:使用OpenCV进行图像处理之透视变换】

文章目录 概要计算公式举个栗子实际应用小结 概要 透视变换(Perspective Transformation)是一种图像处理中常用的变换手段,它用于将图像从一个视角映射到另一个视角,常被称为投影映射。透视变换可以用于矫正图像中的透视畸变&…

CSM32RV003:国产高精度16位ADC低功耗RISC-V内核MCU

目录 高精度ADC工业应用工业数据采集应用CSM32RV003简介主要特性 高精度ADC工业应用 高精度ADC即高精度模数转换器,是一种能够将输入模拟信号转换为数字信号的芯片,在多种消费电子、工业、医疗和科研领域都有广泛应用。高精度ADC的主要特点是能够提供高…

echarts 几千条分钟级别在小时级别图标上展示

需求背景解决效果ISQQW代码地址strategyChart.vue 需求背景 需要实现 秒级数据几千条在图表上显示&#xff0c;(以下是 设计图表上是按小时界别显示数据&#xff0c;后端接口为分钟级别数据) 解决效果 ISQQW代码地址 链接 strategyChart.vue <!--/** * author: liuk *…

02房价预测

目录 代码 评分算法&#xff1a; 代码 import numpy as np from sklearn import datasets from sklearn.linear_model import LinearRegression# 指定版本才有数据集 # C:\Users\14817\PycharmProjects\pythonProject1\venv\Scripts\activate.bat # pip install scikit-le…

webpack项目 index.html 根据不同的变量引入不同的js

项目 webpack搭建 问题&#xff1a;在入口文件index.html中根据不同的变量引入不同的js 使用插件HtmlWebpackPlugin HtmlWebpackPlugin 项目里用来生成静态文件的 这个插件每个项目基本都要用到的&#xff0c;只要全局搜一下位置 根据配置文件的指令找到执行的文件&#xff0…

[点云分割] 区域增长分割

效果&#xff1a; 原始数据 分割结果 代码&#xff1a; #include <iostream> #include <vector> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> // 各种点云数据类型 #include <pcl/search/search.h> #include <pcl/search/kdtr…

【Java】基于SaaS模式的Java基层医院卫生健康云HIS系统源码

一、模板管理 模板分为两种&#xff1a;病历模板和报表模板。模板管理是运营管理的核心组成部分&#xff0c;是基层卫生健康云中各医疗机构定制电子病历和报表的地方&#xff0c;各医疗机构可根据自身特点特色定制电子病历和报表&#xff0c;制作的电子病历及报表可直接在业务…

CSS画一条线

<p style"border: 1px solid rgba(0, 0, 0, 0.1);"></p> 效果&#xff1a;

Power Apps-Timer

插入一个计时器 右侧属性面板&#xff0c;持续时间的单位是毫秒&#xff0c;60000就是60秒&#xff08;一分钟&#xff09;&#xff1b;开启重复是指60秒结束后重新开始计时&#xff1b;自动启动是指当从其他页面进入时是否自动开始计时&#xff1b;自动暂停是指当离开这个页面…

Python语言:猜数字游戏案例讲解

猜数字游戏题目要求如下&#xff1a;该程序随机生成一个1到100之间的整数&#xff0c;然后要求玩家在有限的次数内猜出这个数字。如果玩家猜对了&#xff0c;游戏结束并显示成功信息&#xff1b;如果玩家猜错了&#xff0c;程序会提示玩家猜的数字是偏大还是偏小&#xff0c;并…

VsCode连接远程Linux编译环境的便捷处理

1.免输登录密码 免输命令的正确方法是使用公钥和私鈅在研发设备&#xff0c;和linux服务器上校验身份。公钥和私钥可在windows系统上生成。公钥要发送到linux服务器。私钥需要通知给本地的ssh客户端程序&#xff0c;相关的操作如下&#xff1a; 生成 SSH Key&#xff1a; 打开…

如何编辑WordPress配置文件wp-config.php

目录 wp-config.php文件全部内容&#xff1a; 修改wp-config.ph文件中的数据库设置&#xff1a; 设置wp-config.ph文件中的密钥部分 修改数据库表前缀 设置绝对路径 WordPress会把数据库的相关信息存在wp-config.php文件中。如果编辑有问题&#xff0c;则会出现建立数据库连…

C语言--每日五道选择题-- Day22

第一题&#xff08;注意&#xff09; 1.下列 C 代码中&#xff0c;不属于未定义行为的有&#xff1a;______。 A&#xff1a;int i0; i(i); B&#xff1a;char *p"hello"; p[1]E; C&#xff1a;char *p"hello"; char ch*p; D&#xff1a;int i0; printf(&q…

Leo赠书活动-10期 【AIGC重塑教育 AI大模型驱动的教育变革与实践】文末送书

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠书活动专栏 ✨特色专栏&#xff1a;…

【SpringBoot】ThreadLocal 的详解

一、ThreadLocal 简介 ThreadLocal 叫做线程变量&#xff0c;意思是 ThreadLocal 中填充的变量属于当前线程&#xff0c;该变量对其他线程而言是隔离的&#xff0c;也就是说该变量是当前线程独有的变量。ThreadLocal 为变量在每个线程中都创建了一个副本&#xff0c;那么每个线…