跳转到主要内容
SQL 文件(.sql、.ddl、.dml、.psql、.pgsql、.mysql)开箱即有语法高亮。大部分 SQL 功能,包括执行语句、补全表名和列名,都来自数据库工具窗口:任何可编辑的 SQL 文件都可以绑定到一个数据源,用起来和查询控制台一样。其他语言见语言支持总览。

语言服务器

SQL 的语言定义使用 sqls。缺少它时,打开 SQL 文件会弹出“sqls 未安装”的通知,点 安装 会执行 go install github.com/sqls-server/sqls@latest,安装到 IDE 自己的工具目录,需要 PATH 上有 Go。PATH 上已有的 sqls 会直接使用。 IDE 不会把数据源传给 sqls。sqls 没有自己的配置文件时并不知道数据库结构,所以如果只用下文的数据库功能,可以忽略这条通知。要关闭它,在 设置 › 语言和框架 › 语言服务器 中选中 sqls,取消勾选 对 SQL 文件使用 sqls。

SQL 文件与数据源

先在 数据库 工具窗口中添加数据源(见数据库)。支持 SQLite、PostgreSQL、MySQL 与 MariaDB、Microsoft SQL Server、ClickHouse 和 Oracle,以及 Amazon Aurora、Redshift、CockroachDB、TiDB、Supabase 等兼容产品。 每个可编辑的 SQL 文件上方都有一条工具栏,其中的 数据源 下拉框把文件绑定到某个数据源。只配置了一个数据源时,文件会自动使用它。查询控制台(⌘⇧L / Ctrl+Shift+Q)打开数据库工具窗口中所选数据源(或唯一的数据源)的查询控制台。 工具栏包括:
  • 执行:执行光标所在的语句,有选区时执行选区内的所有语句。也可以用 执行 SQL 语句(⌘↩ / Ctrl+Enter)。
  • 解释计划:显示光标所在语句的查询计划。
  • 取消正在运行的语句 和 浏览查询历史记录。
  • 事务模式切换(事务:自动 / 事务:手动),手动模式下可以 提交 和 回滚(ClickHouse 不支持)。
  • 模式(SQL Server 为数据库)下拉框,决定不带限定名的对象在哪里解析。
结果显示在结果标签页中。语句按 ; 拆分,会正确处理字符串、带引号的标识符、注释、PostgreSQL 的美元符号引用以及 Oracle PL/SQL 块。

参数

语句中可以使用参数::name、?、?1、@name 和 $1。执行前 IDE 会询问参数值,并把值作为 SQL 文本原样插入,所以字符串值需要自己带上引号。同名参数共用一个值,每个单独的 ? 分别询问。

编辑支持

以下功能由 IDE 自己提供,使用绑定数据源的方言和已读取的数据库结构:
  • 补全关键字、模式、表、视图、列、函数、别名和连接条件。没有数据源时只补全关键字和内置函数。
  • 在 INSERT … VALUES (…) 中显示目标列的参数信息。
  • 对无法解析的表、列和别名给出检查提示。
  • 转到声明或用法:文本中的别名和 CTE 直接跳转,表和列在数据库工具窗口中定位。
  • 表和列的 快速文档。
  • 使用内置 SQL 格式化器 重新格式化代码。
  • 适用于 SQL 上下文(语句、查询、代码位置)的实时模板。
这些都不依赖 sqls。

已知限制

  • 没有绑定数据源时没有数据库结构信息,补全只有关键字和函数,也无法执行语句。
  • 方言跟随绑定的数据源。未绑定的文件按 SQLite 分析,没有按文件设置方言的选项。
  • IDE 不会为 sqls 做任何配置。