notepad++是纯文本编辑器,无法直接连接数据库或执行sql;所有“运行”功能均依赖调用本地命令行工具(如mysql、psql),需通过nppexec插件配置实现,且必须手动启用sql语言模式以支持高亮、缩进及格式化。

Notepad++ 本身不能连接数据库或执行 SQL
直接说结论:Notepad++ 是纯文本编辑器,没有内置数据库驱动、网络客户端或 SQL 解析引擎。它不会弹出连接窗口、不保存连接配置、不返回查询结果集——所有“运行 SQL”的功能,本质都是调用你本地已安装的命令行工具(如 mysql、psql、sqlcmd 或 sqlite3)来完成的。
常见误解是以为装个插件就能像 DBeaver 那样点一下就连上。实际中,所谓“连接成功”,只是 psql -h db.example.com -U user -d mydb 这条命令没报错而已;所谓“执行成功”,只是 shell 返回了 exit code 0,不代表语句逻辑正确或事务已提交。
NppExec 是唯一靠谱的执行入口
目前在 Notepad++ v8.x(2026 年主流版本)中,NppExec 是唯一持续维护、能稳定触发外部命令、支持变量替换和多步脚本的插件。其他如 DBGP、SQL Assistant、DBManager 均已停止更新,且在 x64 版 Notepad++ 上基本无法加载(报错 Failed to load dbgp.dll 或菜单不出现)。
实操要点:
- 通过 Plugins → Plugins Admin 安装
NppExec(不是手动丢 DLL) - 按
F6打开执行窗口,输入类似命令:cd "$(CURRENT_DIRECTORY)" mysql -h localhost -u root -D testdb
- 密码不要写在命令里(
-psecret明文风险高),改用~/.my.cnf配置文件或交互式输密码(即只写-p) - 保存为脚本后勾选 Place to the Macros submenu,后续可从菜单或快捷键一键触发
SQL 语言模式必须手动启用,否则高亮/缩进全失效
Notepad++ 默认不识别 .sql 后缀,打开文件就是白底黑字,括号不匹配、关键字不着色、Ctrl+Shift+F 格式化也没反应——这不是插件问题,是语言模式根本没激活。
必须手动设置:
- 菜单栏 语言 → S → SQL(注意:不是 MySQL / PostgreSQL 子项,是顶层
SQL) - 菜单栏 设置 → 样式配置器 → 语言 → SQL → 扩展名,在输入框末尾加空格再填
sql(已有ddl dml别删) - 若用
.pgsql或.plsql等自定义后缀,也得手动加进去 - 格式化插件(如
SQLinForm)依赖此设置,否则直接跳过处理
SQLinForm 是唯一能稳定格式化的插件,但有硬性前提
在 v8.x 中,SQLinForm 是目前唯一能处理 500 行以上脚本、不崩溃、不乱码的格式化插件。但它不走插件管理器,且对环境极其敏感。
关键操作链:
- 先确认 Notepad++ 架构:帮助 → About → 看右下角标的是
x64还是x86(不是你系统位数) - 去官网下载对应 DLL(如
SQLinFormNpp64.dll),别用第三方打包版 - 菜单栏 设置 → 导入 → 导入插件,选中 DLL,重启
- 重启后必须先点一次 语言 → SQL,再选中代码,才能用
Plugins → SQLinForm → Format Selection - 中文注释(
-- 中文)、单引号内换行('SELECT * FROM t')会被破坏——这是设计如此,不是 bug,需提前用正则清洗
真正容易被忽略的是:格式化行为完全依赖当前文档的语言模式和选区纯净度。混入 HTML 注释、JS 字符串或未闭合引号,插件会静默跳过,不报错也不处理。











