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. 编辑、命名和描述您的代码片段。代码片段名称必须唯一。单击保存按钮以创建代码片段。

在本例中,我们将其命名为“订单和产品”。现在,代码片段可供任何人使用。这是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代码保存为代码片段用户数据,但需要更改数据获取方式(例如,添加其他列或表中的数据),则可以在代码片段中更新SQL代码,并且使用代码片段用户数据的所有问题都将具有更新的代码。

编辑代码片段名称。更改代码片段的名称将更新使用该代码片段的所有问题的名称。这不会破坏任何现有问题(底层SQL代码保持不变),但请注意,其他用户可能会意外发现您将他们经常使用的代码片段“订单和产品”重命名为“所有事物”,或类似名称。

编辑代码片段的SQL代码。在这里,我们必须提醒您,强大的力量伴随着重大的责任。在编辑代码片段时有一个重要的注意事项

注意:如果您在编辑代码片段时包含错误代码,则会破坏使用该代码片段的所有问题。在将其保存到现有代码片段之前,请确保测试您的代码。

归档代码片段

归档代码片段可以帮助将过时或不相关的代码片段移除。当您归档一个代码片段时,该代码片段将不再在代码片段自动完成下拉菜单中显示,并且代码片段将不再在SQL编辑器侧边栏的代码片段主列表中显示。

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

您可以通过点击侧边栏左下角的归档按钮从代码片段侧边栏菜单访问归档的代码片段。

虽然无法删除代码片段,但您可以在任何时候归档和恢复代码片段。

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

代码片段权限

任何至少有一个连接数据库具有SQL编辑权限的用户将能够查看代码片段侧边栏,并且可以创建、编辑、归档或恢复任何和所有代码片段——即使是用户没有SQL编辑访问权限的数据库中使用的代码片段。

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

了解更多信息

阅读关于其他Metabase版本的文档。

想要改进这些文档? 提出更改。