notepad++ 默认不识别.sql后缀,需手动设语言为sql并绑定扩展名;自动补全需启用内置功能并配置functionlist.xml;无法直接执行sql,须调用外部工具;中文乱码需改为utf-8(无bom)编码。

Notepad++ 里写 SQL 为什么连关键字都不高亮?
默认安装的 Notepad++ 不识别 .sql 文件后缀,所以打开 SQL 文件时只是纯文本,没有语法高亮、括号匹配或自动缩进。这不是你配置错了,是它压根没“认出”这是 SQL。
- 手动设置语言:菜单栏 语言 → S → SQL(不是 “MySQL” 或 “PostgreSQL”,就是顶层的
SQL) - 永久绑定后缀:菜单栏 设置 → 样式配置器 → 语言 → SQL → 扩展名,在输入框末尾追加
sql(注意前面有空格,已有扩展如ddl dml别删),点保存 - 如果用了
.pgsql或.plsql这类自定义后缀,得手动加进去,Notepad++ 不会自动推断
SQL 自动补全和函数提示怎么开?
Notepad++ 自带的 SQL 语言模式只提供基础高亮,不带函数名/关键字补全。要补全,得靠插件,但别装 SQLPro 或第三方大包——它们常崩溃、不更新、还可能禁用其他功能。
- 推荐用内置的
Auto Completion功能:菜单栏 设置 → 首选项 → 备份与自动完成 → 自动完成,勾选启用自动完成和函数提示 - 补全源来自
functionList.xml,但 Notepad++ 默认没为 SQL 配置它;可手动复制一份轻量级 SQL 函数列表(比如只含SELECT、JOIN、OVER等常用词),放路径:%APPDATA%\Notepad++\functionList.xml - 注意:补全触发默认是
Ctrl+Space,不是打字母就弹;且只对当前光标前的单词生效,WHERE后面敲CO不会自动出COUNT,得先输完整再按快捷键
执行 SQL 查询在 Notepad++ 里行不行?
Notepad++ 本身不能连接数据库、不能执行查询。所谓“执行”,其实是调外部命令行工具(比如 mysql、psql、sqlite3),靠「运行」菜单或 NppExec 插件中转。这容易误以为“集成执行”,实际是甩锅给终端。
- 安全风险:如果 SQL 里有
DROP TABLE或变量拼接,直接执行等于裸奔;Notepad++ 不做任何 SQL 安全校验 - 路径依赖:必须确保
mysql命令在系统PATH中,否则报错'mysql' is not recognized as an internal or external command - 更稳的做法:把当前文件保存(
Ctrl+S),然后用外部工具打开——比如右键文件 → “用 SQLite Browser 打开”,比折腾 NppExec 更少出错
中文注释乱码、保存后变问号怎么办?
Notepad++ 默认用 ANSI 编码读写文件,而现代 SQL 脚本多是 UTF-8(尤其含中文注释或表名)。一保存,-- 中文注释 就变 -- ??。
- 改编码:菜单栏 编码 → UTF-8(无 BOM),立刻重载当前文件(不会丢内容)
- 设为默认:菜单栏 设置 → 首选项 → 新建文档/默认目录 → 编码 → UTF-8(无 BOM)
- 警告:如果团队共用脚本,且有人用老版 SQL Server Management Studio(SSMS),它默认读 ANSI,这时统一用 UTF-8 可能导致对方看到乱码——得协商,而不是单方面“选最好的”
Notepad++ 不是 SQL IDE,它只负责“写得清楚”。真正卡住人的,往往是语言模式没认对后缀、UTF-8 没设对、或者误信它能执行语句——这些点不提前踩一遍,后面调格式、查错、交差都费劲。










