# SQL 代码片段

> 管理可复用 SQL 模板、触发键和可跳转占位符，并在编辑器补全中快速展开。

Source: https://dbxio.com/cn/docs/sql-snippets

Language: zh-CN

Relative links resolve against https://dbxio.com/cn/docs/sql-snippets.



SQL 代码片段会作为编辑器补全候选出现。输入触发键后接受候选，DBX 会在光标处插入模板；模板中的占位符可以继续用 `Tab` 和 `Shift+Tab` 逐个填写。

## 管理代码片段

前往 **设置 → 代码片段**。每个片段包含：

| 字段     | 作用                             |
| ------ | ------------------------------ |
| 标签     | 补全列表中显示的名称；留空时使用触发键。           |
| 触发键    | 用于匹配补全候选的前缀，必填，并且在当前片段列表中必须唯一。 |
| 状态     | 临时启用或停用片段，不需要删除模板。             |
| SQL 内容 | 接受补全后插入编辑器的模板正文。               |

你可以新增、编辑、启用、停用或删除片段。**恢复默认值**会把当前草稿替换为 DBX 内置片段；完成修改后点击设置窗口中的 **应用** 保存。

DBX 自带 `sel`、`ins`、`upd`、`cte`、`join` 等常用片段。部分内置片段会根据当前数据库调整语法，例如选择合适的行数限制或 `ALTER TABLE` 写法；自定义片段则按原文插入。

## 在编辑器中展开

1. 在 SQL 编辑器中输入触发键，例如 `sel`。
2. 在补全列表中确认标签和正文预览。
3. 按 `Tab`、`Enter` 或点击候选接受补全。
4. 如果模板包含占位符，继续按 `Tab` 前进，按 `Shift+Tab` 返回。

如果补全列表没有出现，请确认片段已启用、触发键与当前输入匹配，并检查编辑器自动补全是否被关闭。

## 占位符语法

DBX 使用 CodeMirror 代码片段语法：

| 写法                 | 作用                               |
| ------------------ | -------------------------------- |
| `${}`              | 创建一个空的可编辑位置。                     |
| `${name}`          | 创建默认文本为 `name` 的可编辑位置；同名位置会同步编辑。 |
| `${1}`             | 使用数字显式指定跳转顺序。                    |
| `${1:defaultText}` | 指定跳转顺序并提供默认文本。                   |
| `#{name}`          | `${name}` 的等价写法。                 |

数字占位符按照编号跳转；没有数字时按照模板中的出现顺序跳转。要插入不会被识别为占位符的字面量花括号，请在花括号前加反斜杠。

例如：

```sql
SELECT ${1:columns}
FROM ${2:table}
WHERE ${3:condition}
ORDER BY ${4:column};
```

重复使用同一个占位符可以同时修改多个位置：

```sql
SELECT ${1:column}, COUNT(*) AS cnt
FROM ${2:table}
GROUP BY ${1:column};
```

## 保存、同步与安全

代码片段属于编辑器设置，会保存在当前 DBX 运行环境中。桌面版的[配置云同步](/cn/docs/cloud-sync)可以连同其他编辑器设置一起同步片段；[连接配置迁移](/cn/docs/config-export)只处理数据库连接，不包含代码片段。

片段只是生成 SQL，不会绕过数据库权限或 DBX 的生产保护。执行包含写入或 DDL 的模板前，仍应检查展开后的完整 SQL，并遵循[生产安全](/cn/docs/production-safety)建议。

### [查询编辑器](/cn/docs/query-editor)

了解补全、执行范围、历史记录和 SQL 文件等编辑器能力。

### [快捷键](/cn/docs/keyboard-shortcuts)

查看接受补全、格式化和执行 SQL 的当前快捷键。

