Spanner CLI 快速入门

本页面介绍了 Spanner CLI,并说明了如何使用它。

Spanner CLI 是一种命令行界面 (CLI),可让您连接 Spanner 数据库并与之交互。它已纳入 Google Cloud CLI (gcloud CLI) 中,用于与 Spanner 进行交互。您可以使用 Spanner CLI 直接在 Spanner 数据库中执行 GoogleSQL 语句。语句可以包含数据定义语言 (DDL)、数据操纵语言 (DML) 或数据查询语言 (DQL) 语句。您可以使用 Spanner CLI 运行 SQL 命令脚本并自动执行任务。

如需了解详情,请参阅所有受支持的 gcloud alpha spanner cli 命令列表。

主要优势

Spanner CLI 的主要优势包括:

  • 运行 DDL、DML 和 DQL SQL 命令。
  • 您可以跨多行编写和执行 SQL 语句。
  • 支持元命令,可帮助您完成执行系统 shell 命令和从文件执行 SQL 等系统任务。
  • 您可以将一系列 SQL 语句写入脚本文件,然后指示 Spanner CLI 执行该脚本,从而自动执行 SQL。此外,您还可以将输出重定向到输出文件。
  • 您可以启动交互式 Spanner CLI 会话,以便您直接输入 SQL 语句和元命令,并在 CLI 中查看结果。

准备工作

Spanner CLI 可在 gcloud CLI 中使用。首次运行 gcloud alpha spanner cli 命令时,gcloud CLI 会自动安装 Spanner CLI 组件。

使用 Spanner CLI

  1. 设置 Google Cloud 项目

  2. 使用 gcloud CLI 设置身份验证

  3. 创建实例

  4. 创建数据库

  5. 运行以下命令以启动 Spanner CLI 并与您的 Spanner 数据库进行交互:

    gcloud alpha spanner cli DATABASE_ID --instance=INSTANCE_ID
    

    替换以下内容:

    • DATABASE_ID:Spanner 数据库的 ID。这是您在上一步“创建数据库”中使用的名称。您可以使用 gcloud spanner databases list 命令列出给定实例中包含的 Spanner 数据库。
    • INSTANCE_ID:Spanner 实例的 ID。这是您在上一步“创建实例”中使用的名称。您可以使用 gcloud spanner instances list 命令列出给定项目中包含的 Spanner 实例。

执行 SQL

您可以使用 execute 选项或使用基于文件的输入和输出方法在 Spanner CLI 中执行 SQL 语句。SQL 语句可以包含 DDL、DML 或 DQL。

使用 execute 标志

如需使用 execute 标志执行 SQL,请运行以下 gcloud alpha spanner cli 命令:

gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
    --execute "SQL"

替换以下内容:

  • DATABASE_ID:您要连接的 Spanner 数据库的 ID。
  • INSTANCE_ID:您要连接的 Spanner 实例的 ID。
  • SQL:您要执行的 SQL。

例如,如需执行 DDL 语句,请运行以下命令:

gcloud alpha spanner cli test-database --instance test-instance \
    --execute "CREATE TABLE Singers ( \
        SingerId   INT64 NOT NULL, \
        FirstName  STRING(1024), \
        LastName   STRING(1024), \
        SingerInfo STRING(1024), \
        BirthDate  DATE \
      ) PRIMARY KEY(SingerId);"

如需执行 DML 语句,请运行以下命令:

gcloud alpha spanner cli test-database --instance test-instance \
    --execute "INSERT INTO Singers (SingerId, FirstName, LastName, SingerInfo) \
        VALUES(1, 'Marc', 'Richards', 'nationality: USA'), \
              (2, 'Catalina', 'Smith', 'nationality: Brazil'), \
              (3, 'Andrew', 'Duneskipper', NULL);"

使用基于文件的输入和输出

如果您使用基于文件的输入和输出方法,则 Spanner 会从一个文件中读取输入,并将输出写入另一个文件。如需使用基于文件的输入和输出方法来执行 SQL,请运行以下命令:

gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
    --source INPUT_FILE_PATH --tee OUTPUT_FILE_PATH

您还可以使用基于文件的重定向输入和输出方法:

gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
    < INPUT_FILE_PATH > OUTPUT_FILE_PATH

替换以下内容:

  • DATABASE_ID:您要连接的 Spanner 数据库的 ID。
  • INSTANCE_ID:您要连接的 Spanner 实例的 ID。
  • SOURCE_FILE_PATH:包含您要执行的 SQL 的文件。
  • OUTPUT_FILE_PATH:要附加 SQL 输出副本的指定文件。

启动交互式会话

您可以启动交互式 Spanner CLI 会话,以便您直接输入 SQL 语句和元命令,并在 CLI 中查看结果。为此,请运行以下命令:

gcloud alpha spanner cli DATABASE_ID --instance=INSTANCE_ID

当 CLI 与数据库成功建立连接后,您会看到一个提示(例如 spanner-cli>),您可以在其中执行以下操作:

按下 ENTER 键后,语句或命令会发送到相应的 Spanner 数据库。然后,Spanner 会执行语句或命令。

在以下示例中,您将在 test-database 中启动交互式会话,然后执行 SELECT 1;

gcloud alpha spanner cli test-database --instance test-instance

Welcome to Spanner-Cli Client.
Type 'help;' or '\h' for help.
Type 'exit;' or 'quit;' or '\q' to exit.

spanner-cli> SELECT 1;
+---+
|   |
+---+
| 1 |
+---+

1 rows in set (1.11 msecs)

执行 DDL 语句

如需执行 DDL 语句,您可以运行以下命令:

spanner-cli> CREATE TABLE Singers (
          ->         SingerId   INT64 NOT NULL,
          ->         FirstName  STRING(1024),
          ->         LastName   STRING(1024),
          ->         SingerInfo STRING(1024),
          ->         BirthDate  DATE
          -> ) PRIMARY KEY(SingerId);

Query OK, 0 rows affected (17.08 sec)

执行 DML 语句

如需执行 DML 语句,您可以运行以下命令:

spanner-cli> INSERT INTO Singers (SingerId, FirstName, LastName, SingerInfo)
          -> VALUES(1, 'Marc', 'Richards', 'nationality: USA'),
          -> (2, 'Catalina', 'Smith', 'nationality: Brazil'),
          -> (3, 'Andrew', 'Duneskipper', NULL);

Query OK, 3 rows affected (0.32 sec)

支持的元命令

Spanner CLI 支持实用程序元命令,这些命令用于对客户端(在本例中为 Spanner CLI)进行操作。Spanner CLI 支持以下元命令:

命令 语法 说明
? \? 显示帮助信息。 与 \h 相同。
分隔符 \d 设置语句分隔符。默认分隔符为英文分号。
退出 \q 退出 Spanner CLI。与 quit 相同。
Go \g 在 Spanner 中发送并运行 SQL 语句。
帮助 \h 显示帮助信息。 与 \? 相同。
Notee \t 关闭写入到由 \T 设置的输出文件的功能。
提示 \R 将提示更改为用户提示字符串。
退出 \q 退出 Spanner CLI。与 exit 相同。
来源 \. 从输入文件中执行 SQL。接受 [filename] 作为参数。
系统 \! 执行系统 shell 命令。
Tee \T 将命令输出附加到指定的 [filename] 以及标准输出。
使用 \u 连接到其他数据库。接受新数据库名称作为参数。

后续步骤