SQL 代码段

Highlight and save as snippet

SQL 代码段 是可重用的 SQL 或原生查询片段。任何有权访问 SQL 编辑器 的人都可以创建和编辑代码段,这些代码段随后可供所有 SQL 作者使用。

例如,如果您经常执行涉及多个表的查询,您可以将连接这些表的 SQL 代码保存为代码段,以便您(以及您组织中的其他人)可以在多个问题中重用该代码。

如何创建代码段

这是一个使用 Metabase 附带的 **示例数据库** 的简单连接查询。

SELECT *
FROM orders AS o
LEFT JOIN products AS p
ON o.product_id = p.id

让我们将 FROM 之后的所有内容保存为代码段,以便在其他查询中重用。

在 **SQL 编辑器** 中

  1. 突出显示要保存的 SQL 部分。在本例中,我们将选择以下 SQL 代码

    orders AS o
    LEFT JOIN products AS p
    ON o.product_id = p.id
    
  2. 右键单击突出显示的部分。
  3. 选择“另存为代码段” 以创建代码段。将弹出一个模态框,其中包含您突出显示的 SQL 语句。
  4. 编辑、命名和描述您的代码段。代码段名称必须是唯一的。单击“保存”按钮以创建代码段。

在本例中,我们将代码段命名为“Orders and Products”。现在,任何人都可以使用该代码段。以下是代码段在 SQL 编辑器中的外观

SELECT *
FROM {{snippet: Orders and Products}}

在 SQL 编辑器中编写时,您现在可以开始键入 {{snippet:}},Metabase 将显示可用代码段的自动完成选项。

注意:如果您在代码段中使用别名,则还需要在代码段外部注意这些别名。例如,如果代码段别名 products AS p,则代码段外部的代码需要使用别名 p 来引用该表中的列(如 p.column_name)。

代码段菜单

Snippet sidebar and insertion

SQL 编辑器**侧边栏**有一个 **SQL 代码段** 菜单,用于列出可用和已存档的代码段。

单击 SQL 编辑器右侧的代码段图标,位于“数据参考”图书图标和“变量”χ 图标下方。Metabase 将滑出一个侧边栏菜单,其中列出了可用的代码段。

从“SQL 代码段”菜单中,您可以

  • 创建代码段。 单击 SQL 代码段侧边栏右上角的 + 以创建新的代码段。
  • 预览代码段。 单击代码段右侧的向下箭头以查看其描述和 SQL 代码的预览。还有一个编辑代码段的选项。
  • 插入代码段。 单击代码段的名称以将其插入到光标当前位置的查询中。
  • 搜索代码段。如果您保存了超过 15 个代码段,则**搜索**图标(经典的放大镜)将出现在 + 按钮的左侧。请注意,搜索结果仅包括用户有权访问的代码段。SQL 代码段文件夹不会填充搜索结果。
  • **编辑代码段。** 您可以更改代码段的名称、描述和代码。
  • **存档和取消存档代码段。** 从“编辑”模态框中,您可以存档代码段,这将从代码段菜单和 SQL 编辑器中的自动完成选项中删除该代码段。

编辑代码段

您可以随时**编辑**代码段,方法是从 SQL 编辑器中的“SQL 代码段”侧边栏菜单中选择该代码段。单击代码段右侧的向下箭头,然后单击**编辑**。您可以更改 SQL 代码、代码段名称和代码段描述。

编辑代码段是同时更改多个问题的好方法。例如,如果您已将从表 X、Y 和 Z 中提取用户数据的 SQL 代码另存为代码段 User Data,但您需要更改提取数据的方式(例如通过从另一个列或表中添加数据),您可以更新代码段中的 SQL 代码,并且所有使用代码段 User Data 的问题都将具有更新后的代码。

编辑代码段的名称。更改代码段的名称将更新每个使用该代码段的问题中代码段的名称。它不会破坏任何现有问题(底层 SQL 保持不变),但请注意,其他用户可能会措手不及地发现您将他们经常使用的代码段从“Orders and Products”重命名为“All the things”或其他名称。

编辑代码段的 SQL。** 在这里,我们必须提醒您,权力越大,责任越大。编辑代码段时有一个主要的注意事项,值得特别指出

注意:如果您编辑代码段并包含损坏的代码,您将破坏每个使用该代码段的问题。 在将代码保存到现有代码段之前,请务必测试您的代码。

存档代码段

存档 代码段可以帮助将过时或不太相关的代码段排除在外。当您存档代码段时,该代码段不再填充在代码段自动完成下拉列表中,并且该代码段将不再显示在 **SQL 编辑器** 侧边栏中的代码段主列表中。

存档代码段不会影响任何使用该代码段的现有查询,因此您可以安全地存档代码段,而不会影响任何问题。

您可以从代码段侧边栏菜单访问已存档的代码段,方法是单击侧边栏左下角的已存档按钮。

尽管无法删除代码段,但您可以随时存档和取消存档代码段。

注意:两个代码段不能共享相同的名称,因为即使代码段已存档,该代码段仍可能在问题中处于活动状态。

代码段权限

任何有权访问至少一个已连接数据库的 SQL 编辑器的用户都将能够查看代码段侧边栏,并且将能够创建、编辑以及存档或取消存档任何和所有代码段——即使是旨在与用户缺乏 SQL 编辑访问权限的数据库一起使用的代码段。

某些计划包含用于将代码段组织到文件夹中以及设置这些文件夹权限的附加功能。请参阅我们的 关于 SQL 代码段文件夹和权限的文档

了解更多

阅读其他 Metabase 版本 的文档。