数据工作基础：SQL / Python / Linux
更新日期：2026-10-13

一、直接阅读
双击 index.html。保留 assets、lessons、examples、data、verification 目录。
正文、高亮、交互演示与图片均在本地；外部官方资料链接需联网。
首页按模块筛选、按标题/关键词/正文搜索；按 / 聚焦搜索。
每章有5道自测、2项动手任务、提示和折叠参考答案。
A=关闭资料独立完成，B=提示后完成，C=需要重学。
自测回答与掌握状态尽量保存在当前浏览器。file:// 的保存行为可能随浏览器不同。
定期导出进度；导入会替换本课程进度，不改变原机器学习笔记。
若保存失败，页面会提示；此时仍可用导出按钮保存本次记录。

二、在这台电脑运行 Python 示例（PowerShell）
课程已建立独立 .runtime/venv，Python 3.13.9，CPU PyTorch 2.9.1+cpu。
cd 'D:\liuwei\求职\笔试\notes\data_skills_html'
& '.\.runtime\venv\Scripts\python.exe' -B '.\examples\np-broadcast.py'
& '.\.runtime\venv\Scripts\python.exe' -B '.\examples\pd-merge.py'
& '.\.runtime\venv\Scripts\python.exe' -B '.\examples\project-model.py'
无需激活虚拟环境；脚本用自身位置定位数据，输出到课程 outputs。
.runtime、outputs 不包含在可迁移 ZIP 内。打包的图形与运行记录保留在 assets、verification。

三、另一台电脑准备 Python（首次依赖安装需要网络）
建议64位 Python 3.13。先在终端确认 python --version，必要时用解释器完整路径。
在课程根目录运行：
python -m venv .venv
Windows：.venv\Scripts\python.exe -m pip install -r examples\requirements-lock.txt
Linux：.venv/bin/python -m pip install -r examples/requirements-lock.txt
本次完整锁文件针对Python3.13/Windows；其他平台可先用requirements.txt安装主要固定依赖，再验证。
python 不在 PATH 时使用解释器绝对路径。
Matplotlib使用Agg生成文件，不要求图形窗口；PyTorch全部用CPU，不需要CUDA。
NumPy2.4.4、pandas2.3.3、Matplotlib3.10.6为课程验证基线；pandas3.x差异在正文单独说明。

四、SQL / MySQL
主讲MySQL8.0+常用语法，本次真实验证MySQL8.4.11。
独立数据库名为 data_skills_course。reset.sql 仅重建该数据库中的六张教学表；不要用于生产库。
准备自己的本地MySQL8.4实例后，使用 examples/run_mysql.py，默认为127.0.0.1:3306。
有密码时在本次终端设置 DATA_SKILLS_MYSQL_PASSWORD 环境变量；脚本不保存密码。
python examples/run_mysql.py --user root --port 3306 --reset
python examples/run_mysql.py sql-window --user root --port 3306
也可在MySQL客户端中执行 examples/sql/reset.sql，然后 USE data_skills_course 并运行章节SQL。
课程不会自动安装MySQL服务。制作时的临时验证实例已关闭；33087端口不会长期开放。
不要用SQLite运行结果替代MySQL验证；NULL、日期、类型与窗口方言不同。

五、Linux / Bash
推荐WSL2中的Ubuntu，安装指导：https://learn.microsoft.com/en-us/windows/wsl/install
WSL安装由读者按自身系统完成，课程脚本不改系统配置。
进入Bash终端：cd /mnt/d/liuwei/求职/笔试/notes/data_skills_html
bash examples/shell/linux-files.sh
bash examples/shell/linux-process.sh
不要把Bash代码直接粘贴到PowerShell；提示符$不属于命令正文。
本次六章脚本在Windows Git Bash兼容运行。GNU ps不受支持时，进程章会显式提示并用kill -0检查自建进程。
这不能代替Ubuntu的权限、用户和进程语义验证；SSH/SCP/cron属于正文示例，未连接远程主机或写入调度。
所有运行文件写入outputs/linux或脚本自建临时目录，仅终止自己创建的子进程。

六、维护与验证（在课程根目录）
python source/datasets.py                    # 重生成固定种子合成CSV和SQL初始化脚本
python source/build.py                       # 从源码重建全部页面与示例
python source/run_examples.py                # 运行Python；未提供环境的SQL/Bash记录为跳过
python source/run_examples.py --mysql-port 3306 --bash <Bash绝对路径>
python source/verify.py --mysql-port 3306     # 页面链接、内容与跨工具语义核对
node source/check.mjs                        # DOM与交互数值检查，需jsdom
python source/package.py                     # 重建验证报告和离线ZIP
run_examples.py 的MySQL验证先重置独立教学表；务必使用教学实例。
verification/run_manifest.json 记录真实输出、代码SHA256、版本和运行状态。
页面仅展示与当前代码SHA256匹配的运行结果；代码变更后需重跑对应示例。
查看 verification/report.html 了解已验证范围与限制。

七、数据与研究边界
data/dictionary.json 是数据粒度、观察截止日和指标口径的权威定义。
所有数据为固定种子合成，金额是教学货币单位，日期不是实际行情或真实业务日志。
业务案例中会话漏斗、用户漏斗以及不同天数留存各有口径，比较前先对齐定义。
预测数据只用train拟合填充和标准化，validation选模，test最终评价。
行情面板仅用于处理机制，不构成盈利或交易结论。
