快速入门:使用控制台

本快速入门介绍如何使用 Google Cloud Console 在 Cloud Spanner 中执行基本操作。在快速入门中,您将执行以下操作:

  • 创建 Cloud Spanner 实例、数据库和表。
  • 添加架构。
  • 写入和修改数据。
  • 运行查询。

准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  5. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  6. 为项目启用 Cloud Spanner API。

    启用 Cloud Spanner API

创建实例

首次使用 Cloud Spanner 时,您必须创建一个实例,用于分配 Cloud Spanner 数据库在该实例中使用的资源。

  1. 转到 Cloud Console 中的 Cloud Spanner 实例页面。

    转到实例页面

  2. 点击创建实例

  3. 对于实例名称,请输入测试实例

  4. 对于实例 ID,请输入 test-instance

  5. 使用区域配置。

  6. 从下拉菜单中选择任意区域配置。

    您的实例配置决定了您的实例会存储和复制到什么地理位置。

  7. 使用 1000 个处理单元的默认计算容量。

    实例创建页面现在如下所示:

    实例创建窗口的屏幕截图

  8. 点击创建

    您的实例将显示在实例列表中。

创建数据库

  1. 转到 Cloud Console 中的 Cloud Spanner 实例页面。

    转到实例页面

  2. 点击测试实例实例。

  3. 点击创建数据库

  4. 对于数据库名称,请输入 example-db

    数据库创建页面现在如下所示:

    数据库创建窗口的屏幕截图

  5. 选择数据库方言。

    如需了解 PostgreSQL 的支持以及如何选择方言,请参阅 PostgreSQL 界面

  6. 如果您选择了 Google SQL,则暂时将定义架构文本字段留空。您将在本快速入门的下一部分中定义架构。

  7. 点击创建

    Cloud Console 将显示您创建的数据库的概览页面。

创建数据库的架构

  1. 在 example-db 的概览页面上,点击表列表开头的创建表

    Cloud Console 将显示编写 DDL 语句页面。

  2. 输入:

    Google 标准 SQL

    CREATE TABLE Singers (
      SingerId   INT64 NOT NULL,
      FirstName  STRING(1024),
      LastName   STRING(1024),
      SingerInfo BYTES(MAX),
      BirthDate  DATE,
    ) PRIMARY KEY(SingerId);
    

    PostgreSQL

    CREATE TABLE Singers (
      SingerId   BIGINT PRIMARY KEY,
      FirstName  VARCHAR(1024),
      LastName   VARCHAR(1024),
      SingerInfo BYTEA,
      BirthDate  TIMESTAMPTZ
    );
    
  3. 点击提交

    Cloud Console 会返回 example-db 的概览页面,并且显示架构更新正在进行中。更新完成后,页面如下所示:

    Google 标准 SQL

    表屏幕截图

    PostgreSQL

    表屏幕截图

    请注意,PostgreSQL 会将表名称转换为全部小写。

插入和修改数据

Cloud Console 提供了用于插入、修改和删除数据的界面。

插入数据

  1. 在 example-db 的概览页面上,点击表列表中的 Singers 表。

    Cloud Console 会显示 Singers 表的架构页面。

  2. 在侧边菜单中,点击数据以显示 Singers 表的数据页面。

  3. 点击插入

    Cloud Console 显示 Singers 表的查询页面,其中包含一个新的查询标签页,其中包含您编辑的模板 INSERTSELECT 语句以在 Singers 表中插入一行并查看该插入的结果:

    Google 标准 SQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (<SingerId>, -- type: INT64
        <BirthDate>, -- type: DATE
        <FirstName>, -- type: STRING(1024)
        <LastName>, -- type: STRING(1024)
        <SingerInfo> -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=<SingerId>;
    

    PostgreSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      singers (singerid,
        birthdate,
        firstname,
        lastname,
        singerinfo)
    VALUES
      (<singerid>, -- type: bigint
        <birthdate>, -- type: timestamp with time zone
        <firstname>, -- type: character varying
        <lastname>, -- type: character varying
        <singerinfo> -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=<singerid>;
    

    请注意,PostgreSQL 会将列名称转换为全部小写。

  4. 修改 INSERT 语句的 VALUES 子句和 SELECT 语句的 WHERE 子句:

    Google 标准 SQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (1, -- type: INT64
        NULL, -- type: DATE
        'Marc', -- type: STRING(1024)
        'Richards', -- type: STRING(1024)
        NULL -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=1;
    

    PostgreSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      singers (singerid,
        birthdate,
        firstname,
        lastname,
        singerinfo)
    VALUES
      (1, -- type: bigint
        NULL, -- type: timestamp with time zone
        'Marc', -- type: character varying
        'Richards', -- type: character varying
        NULL -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=1;
    
  5. 点击运行

    Cloud Spanner 运行这些语句。完成后,结果标签页会指明第一个语句插入了一行,并提供了一个查看表数据的链接。

  6. 结果标签页中,点击表格链接。Singers 表现在有一行:

    Google 标准 SQL

    单行 Singers 表数据的屏幕截图

    PostgreSQL

    单行 Singers 表数据的屏幕截图

  7. 点击插入以再添加一行。

    Cloud Console 再次显示 Singers 表的查询页面,其中包含包含相同模板 INSERTSELECT 语句的新查询标签页。

  8. 修改 INSERT 语句的 VALUES 子句和 SELECT 语句的 WHERE 子句:

    Google 标准 SQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (2, -- type: INT64
        NULL, -- type: DATE
        'Catalina', -- type: STRING(1024)
        'Smith', -- type: STRING(1024)
        NULL -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=2;
    

    PostgreSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      singers (singerid,
        birthdate,
        firstname,
        lastname,
        singerinfo)
    VALUES
      (2, -- type: bigint
        NULL, -- type: timestamp with time zone
        'Catalina', -- type: character varying
        'Smith', -- type: character varying
        NULL -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=2;
    
  9. 点击运行

    在 Cloud Spanner 运行语句之后,结果标签页会再次指示第一个语句插入了一行。

  10. 点击表格链接。Singers 表现在有两行:

    Google 标准 SQL

    两行 Singers 表数据的屏幕截图

    PostgreSQL

    两行 Singers 表数据的屏幕截图

在输入数据时您也可以插入空字符串值。

  1. 点击插入以添加行。

    Cloud Console 再次显示 Singers 表的查询页面,其中包含包含相同模板 INSERTSELECT 语句的新查询标签页。

  2. 修改模板的 INSERT 语句的 VALUES 子句和 SELECT 语句的 WHERE 子句:

    Google 标准 SQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (3, -- type: INT64
        NULL, -- type: DATE
        'Kena', -- type: STRING(1024)
        '', -- type: STRING(1024)
        NULL -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=3;
    

    PostgreSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      singers (singerid,
        birthdate,
        firstname,
        lastname,
        singerinfo)
    VALUES
      (3, -- type: bigint
        NULL, -- type: timestamp with time zone
        'Kena', -- type: character varying
        '', -- type: character varying
        NULL -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=3;
    

    请注意,为姓氏列提供的值是空字符串 '',而不是 NULL 值。

  3. 点击运行

    在 Cloud Spanner 运行语句之后,结果标签页会再次指示第一个语句插入了一行。

  4. 点击表格链接。Singers 表现在有三行,并且主键值为 3 的行具有包含空字符串的姓氏列:

    Google 标准 SQL

    三行 Singers 表数据的屏幕截图

    PostgreSQL

    三行 Singers 表数据的屏幕截图

修改数据

  1. 在 Singers 表的数据页面上,选中主键值为 3 的行旁边的复选框,然后点击修改

    Cloud Console 将显示查询页面,页面中含有一个新的标签页,其中包含您修改的模板 UPDATESELECT 语句。请注意,两个语句的 WHERE 子句都表示要更新的行是主键值为 3 的行。

    Google 标准 SQL

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      Singers
    SET
      BirthDate='',
      FirstName='Kena',
      LastName='',
      SingerInfo=''
    WHERE
      SingerId=3;
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=3;
    

    PostgreSQL

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      singers
    SET
      birthdate='',
      firstname='Kena',
      lastname='',
      singerinfo=''
    WHERE
      singerid='3';
    SELECT
      *
    FROM
      singers
    WHERE
      singerid='3';
    
  2. 修改 UPDATE 语句的 SET 子句,以仅更新出生日期:

    Google 标准 SQL

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      Singers
    SET
      BirthDate='1961-04-01'
    WHERE
      SingerId=3;
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=3;
    

    PostgreSQL

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      singers
    SET
      birthdate='1961-04-01 00:00:00 -8:00'
    WHERE
      singerid='3';
    SELECT
      *
    FROM
      singers
    WHERE
      singerid='3';
    
  3. 点击运行

    Cloud Spanner 运行这些语句。完成后,结果标签页会指明第一个语句更新了一行,并提供了一个查看表数据的链接。

  4. 结果标签页中,点击表格链接。

    更新后的行现在包含出生日期的值。

    Google 标准 SQL

    具有更新行的 Singers 表数据的屏幕截图

    PostgreSQL

    具有更新行的 Singers 表数据的屏幕截图

删除数据

  1. 在 Singers 表的数据页面上,选中第一列中包含 2 的行旁边的复选框,然后点击删除
  2. 在显示的对话框中,点击确认

    Singers 表现在有两行:

    Google 标准 SQL

    两行 Singers 表数据的屏幕截图;SingerId 为 2 的行消失了

    PostgreSQL

    两行 Singers 表数据的屏幕截图;SingerId 为 2 的行消失了

运行查询

  1. 在 example-db 的概览页面上,点击侧边菜单中的查询以显示 example-db 的查询页面。

  2. 点击新标签页以创建新的查询标签页。然后,输入以下查询:

    Google 标准 SQL

    SELECT * FROM Singers;
    

    PostgreSQL

    SELECT * FROM singers;
    
  3. 点击运行

    Cloud Spanner 运行查询。完成后,结果标签页将显示查询结果:

    Google 标准 SQL

    查询结果的屏幕截图

    PostgreSQL

    查询结果的屏幕截图

恭喜!您已成功创建了一个 Cloud Spanner 数据库,并使用查询编辑器执行了一条 SQL 语句!

清理

为避免您的 Cloud Billing 帐号产生额外费用,请删除您创建的数据库和实例。

删除数据库

  1. 转到 Google Cloud Console 中的 Cloud Spanner 实例页面。

    转到实例页面

  2. 点击测试实例

  3. 点击 example-db

  4. 数据库详情页面中,点击 删除数据库

  5. 确认您要删除数据库并点击删除

删除实例

删除实例会自动删除在该实例中创建的所有数据库。

  1. 转到 Google Cloud Console 中的 Cloud Spanner 实例页面。

    转到实例页面

  2. 点击测试实例

  3. 点击

  4. 确认您要删除实例并点击删除

后续步骤