Snowflake - 表和列



在数据库中,创建模式,它们是表的逻辑分组。表包含列。表和列是数据库中低级别且最重要的对象。本章将讨论如何在 Snowflake 中创建表和列。

Snowflake 为用户提供两种方法来创建表和相应的列:使用用户界面和 SQL 查询。如果不提供列的详细信息,用户无法创建表。

使用 Snowflake 的 UI 操作表和列

让我们看看如何使用 Snowflake 的 UI 操作表和列。

创建表和列

使用唯一的 URL 登录 Snowflake 帐户。单击顶部功能区上的**数据库**按钮。它将导航到数据库视图屏幕。

单击要创建新表的数据库名称。它将导航到数据库属性页面,您可以在其中查看在数据库内创建的表/视图/模式等。

如果未选中,请单击**表**,默认情况下会选中表。您可以看到在同一数据库中创建的表列表,否则为空白。

Create Table

单击**创建**按钮以添加表。它将弹出**创建表**对话框。输入以下字段:

  • **表名** - test_table

  • **模式名称** - 从可用列表中选择 – PUBLIC

  • **列** - 单击**添加**按钮,然后输入名称、类型、“非空”或任何默认值。

  • 要添加多个列,请继续单击**添加**按钮,然后输入详细信息。现在,单击**完成**按钮。

以下屏幕截图显示了如何添加表和列:

Adding Tables and Columns

您可以在视图面板中看到已创建的表。

查看表和列

在本节中,我们将讨论如何**查看**表和列的详细信息,如何**创建类似**的表,如何**克隆**它以及如何**删除**表。

单击顶部功能区上的**数据库**。它将显示数据库的视图面板,其中列出了所有数据库。单击存在表的数据库的名称。例如,以下屏幕截图中显示的**TEST_DB**:

View Tables

它将显示数据库中列出的所有表。使用**创建**按钮创建新表。使用**创建类似**按钮创建具有与现有表相同的元数据的表。

单击**创建类似**按钮,将弹出**创建类似表**对话框。输入新表的名稱,然后单击**完成**按钮。

以下屏幕截图解释了此功能:

Create Table Like

在视图面板中,您可以看到新表。在本例中为 TABLE_TEST_1。

  • 使用**克隆**按钮创建现有表的另一个副本。要执行此操作,请选择一个表并单击**克隆**按钮。

  • **克隆表**对话框将弹出到屏幕上。输入新表的名稱,然后单击**完成**按钮。

以下屏幕截图显示了克隆功能。

Clone Table

您可以在视图面板中看到新表。

**克隆**和**创建类似**的区别在于“列数据”。克隆会从现有表中提取实际数据,而创建类似的表只会复制表的元数据。它不会复制表中存在的现有数据。

用户也可以通过选择一个表并单击**删除**按钮来删除表。将弹出**删除表**对话框以进行确认。单击“是”以删除,否则单击“否”。

Drop Table

使用 Snowflake 的 SQL 接口操作表和列

一旦用户开始操作表和列,相应的数据库和模式就成为重要的因素。如果没有提供数据库和模式的详细信息,查询将无法成功执行。

有两种方法可以设置数据库和模式详细信息:一种是使用 Snowflake 的 UI,另一种是在查询中表名前提供数据库名称和模式名称,如下例所示:

SELECT * FROM DATABSE_NAME.SCHEMA_NAME.TABLE_NAME.

在 UI 中,需要执行以下步骤:

单击“选择模式”旁边右上角的下拉箭头。它会弹出一个对话框,用户可以在其中提供以下详细信息:

  • 角色
  • 数据仓库
  • 数据库
  • 模式

以下屏幕截图描述了上述步骤:

Snowflake SQL Interface

现在,当用户运行查询时,无需在查询中提供数据库名称和模式名称,它将针对上面设置的数据库和模式运行。如果需要切换到另一个数据库/模式,可以频繁更改它。

在 SQL 中设置数据库、数据仓库和模式

使用以下查询为会话设置**数据仓库**:

USE WAREHOUSE <WAREHOUSE_NAME>

使用以下查询为会话设置**数据库**:

USE DATABASE <DATABASE_NAME>

使用以下查询为会话设置**模式**:

USE SCHEMA <SCHEMA_NAME>

创建表和列

登录 Snowflake 并导航到工作表。默认情况下,登录后会打开工作表,否则单击顶部功能区上的**工作表**图标。

使用以下查询在数据库 TEST_DB 和模式 TEST_SCHEMA_1 下创建表和列:

CREATE TABLE "TEST_DB"."TEST_SCHEMA_1"."TEST_TABLE"
   ("ID" NUMBER (10,0) NOT NULL DEFAULT 0, "NAME" VARCHAR (50), "ADDRESS" VARCHAR (100))

单击**运行**按钮执行查询。结果将显示在**结果**面板中,显示 TEST_TABLE 已成功创建。

查看表和列

要查看所有列出的表,可以使用以下 SQL。它会显示所有列出的模式的详细信息。

SHOW TABLES

要查看列定义,请使用以下 SQL:

DESCRIBE TABLE TEST_DB.TEST_SCHEMA_1.TEST_TABLE

要克隆表,请使用以下 SQL:

CREATE TABLE "TEST_DB"."TEST_SCHEMA_1".TEST_TABLE_2 CLONE "TEST_DB"."TEST_SCHEMA_1"."TEST_TABL_1"

要创建类似的表,请使用以下查询:

CREATE TABLE "TEST_DB"."TEST_SCHEMA_1".TEST_TABL_1 LIKE "TEST_DB"."TEST_SCHEMA_1"."TEST_TABLE"

要删除表,请使用以下 SQL:

DROP TABLE "TEST_DB"."TEST_SCHEMA_1"."TEST_TABLE_2"

用户可以在每次操作后运行 SHOW TABLES 查询以验证操作是否已完成。

广告