Snowflake - 表和列
在数据库中,会创建模式,即表的逻辑分组。表包含列。表和列是数据库的低级和最重要的对象。在本章中,我们将讨论如何在 Snowflake 中创建表和列。
Snowflake 为用户提供了两种方式,使用用户界面和 SQL 查询创建表和相应的列。如果不提供列的详细信息,用户就无法创建表。
使用 Snowflake 的 UI 处理表和列
让我们看看如何使用 Snowflake 的 UI 处理表和列。
创建表和列
使用唯一 URL 登录 Snowflake 帐户。单击顶部功能区中的数据库按钮。它会导航到数据库视图屏幕。
单击要创建新表的数据库名称。它会导航到数据库属性页面,您可以在其中查看在数据库内创建的表/视图/模式等。
如果未选择表,请单击它,默认情况下,表处于选中状态。您可以看到在同一数据库中创建的表的列表,否则为空白。
单击创建按钮添加表。它会弹出创建表对话框。输入以下字段 −
表名称 − test_table
模式名称 −从可用列表中选择 - 公共
列 − 单击添加按钮,然后输入名称、类型、非空或任何默认值。
要添加多个列,请继续单击添加按钮,然后输入详细信息。现在,单击完成按钮。
以下屏幕截图描述了如何添加表和列 −
您可以在视图面板中看到创建的表。
查看表和列
在本节中,我们将讨论如何查看表和列的详细信息,如何创建类似表,如何克隆它,以及如何删除表。
单击顶部功能区中的数据库。它将显示数据库的视图面板,其中列出了所有数据库。单击包含表的数据库的名称。例如,TEST_DB 如以下屏幕截图所示 −
它将显示数据库中列出的所有表。使用创建按钮创建新表。使用创建类似按钮创建具有与现有表相同元数据的表。
通过单击创建类似按钮,将弹出创建类似表对话框。输入新表的名称,然后单击完成按钮。
以下屏幕截图解释了此功能 −
在"视图"面板中,您可以看到新表。在本例中为 TABLE_TEST_1。
使用克隆按钮创建现有表的另一个副本。要执行此操作,请选择一个表并单击克隆按钮。
克隆表对话框将弹出在屏幕上。输入新表的名称,然后单击完成按钮。
以下屏幕截图显示了克隆功能。
您可以在视图面板中看到新表。
克隆和创建类似的区别在于"列数据"。克隆会从现有表中获取实际数据,而创建类似只会复制表的元数据。它不会复制表中现有的数据。
用户也可以删除表,方法是选择一个表并单击删除按钮。将弹出删除表对话框进行确认。单击"是"删除,否则单击"否"。
使用 Snowflake 的 SQL 界面处理表和列
一旦用户开始处理表和列,相应的数据库和模式就成为重要因素。如果没有提供数据库和模式的详细信息,查询将无法成功执行。
有两种方法可以设置数据库和模式详细信息 - 一种是使用 Snowflake 的 UI,另一种是在查询中的表名之前提供数据库名称和模式名称,如以下示例所示 −
SELECT * FROM DATABSE_NAME.SCHEMA_NAME.TABLE_NAME。
在 UI 中,需要执行以下步骤 −
单击选择模式旁边右上角的向下箭头。它会弹出一个对话框,用户可以在其中提供以下详细信息 −
- 角色
- 仓库
- 数据库
- 模式
以下屏幕截图描述了上述步骤 −
现在,当用户运行查询而不在查询中提供数据库名称和模式名称时,它会根据设置的数据库和模式运行,如上所示。如果需要切换到另一个数据库/模式,则可以经常更改它。
在 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 查询来验证操作是否完成。