更新时间:2023-12-01 GMT+08:00

从这里开始

通过本小节您可以快速完成创建数据库、创建表及向表中插入数据和查询表中数据。本章的子节更详细地讲解数据库使用的一些常用步骤。

数据库基本操作

  1. 创建数据库用户。

    默认只有创建集群时生成的管理员用户可以访问初始数据库。要向其他用户授予访问权限,必须创建新的用户帐户。

    1
    CREATE USER joe WITH PASSWORD 'password';
    

    当结果显示为如下信息,则表示创建成功。

    1
    CREATE USER
    

    上面,创建了一个用户名为joe,密码用户自定义。

    新创建的用户帐户默认具有所有数据库的登录权限和创建表、视图、索引等的权限及对这些自己所建对象的操作权限。更多信息请参见用户

  2. 创建数据库。

    1
    CREATE DATABASE mytpcds;
    

    有关数据库管理的更多操作指导,请参考创建和管理数据库

  3. (可选)创建schema。

    schema又称作模式。通过schema,允许多个用户使用同一数据库而不相互干扰。

    执行如下命令来创建一个schema。

    1
     CREATE SCHEMA myschema;
    

    当结果显示如下信息,则表示成功创建一个名为myschema的schema。

    1
    CREATE SCHEMA
    

    schema创建成功后,就可以在该schema下创建对象了。但是,请确保在创建对象前使用如下两种方式之一将对象创建到对应的schema下。

    先将数据库的search_path设成对应schema,然后再创建对象。

    1
    2
    SET SEARCH_PATH TO myschema;
    CREATE TABLE mytable (firstcol int);
    

    在创建对象时指定由“模式名称+对象名称”组成的完整对象名称,中间由符号“.”隔开。例如:

    1
    CREATE TABLE myschema.mytable (firstcol int);
    

    如果在创建对象时不指定schema,则会将对象创建在当前的schema下。查询当前schema的办法为:

    1
    2
    3
    4
    5
     show search_path;
      search_path
    ----------------
     "$user",public
    (1 row)
    

    创建完mytpcds数据库后,就可以按如下方法退出gaussdb数据库。

    1
    \q
    

    有关schema的更多信息请参考创建和管理schema

  4. 创建表。

    • 创建一个名称为mytable,只有一列的表。字段名为firstcol,字段类型为integer。
      1
      CREATE TABLE mytable (firstcol int);
      

      未使用“DISTRIBUTE BY”指定分布列时,系统默认会使用第一个符合分布列数据类型要求的列为分布列,且给出提示。系统返回信息以“CREATE TABLE”结束,表示创建表成功。

      1
      2
      NOTICE:  The 'DISTRIBUTE BY' clause is not specified. Using 'firstcol' as the distribution column by default.
      HINT:  Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
      

      PG_TABLES系统表包含集群中所有表的有关信息。通过SELECT 命令可以在此系统表中查看表的属性。

      1
      SELECT * FROM PG_TABLES WHERE TABLENAME = 'mytable';
      
    • 向表中插入数据:
      1
      INSERT INTO mytable values (100);
      

      INSERT 命令可向数据库表插入各个行。要进行标准的批量加载,请参阅关于OBS并行导入

    • 查看表中数据:
      1
      2
      3
      4
      5
      SELECT * from mytable;
       firstcol 
      ----------
            100
      (1 row)
      
    • 默认情况下,新的数据库对象是创建在“public”模式下的,例如刚刚新建的表。关于模式的更多信息请参考创建和管理schema
    • 关于创建表的更多信息请参见创建表
    • 除了创建的表以外,数据库还包含很多系统表。这些系统表包含集群安装信息以及GaussDB(DWS)上运行的各种查询和进程的信息。可以通过查询系统表来收集有关数据库的信息。请参见查看系统表
    • GaussDB(DWS)支持行列混合存储,为各种复杂场景下的交互分析提供更好的查询性能,关于存储模型的选择,请参考规划存储模型

加载示例数据

本手册中大部分示例均使用在gaussdb数据库中创建TPC-DS示例表。如果希望通过您的SQL查询工具按照示例操作,请先创建TPC-DS示例表,然后为示例表加载示例数据。

OBS桶中提供了示例数据,该存储桶向所有经过身份验证的云用户提供了读取权限。

有关创建表和加载示例数据的步骤,请参考加载示例数据

释放资源

如果为完成本节的练习部署了集群,那么应在完成练习后删除该集群。

要删除集群,请按照删除集群进行操作。

如果要保留集群但清除db_tpcds数据库,请运行如下命令:

1
DROP DATABASE mytpcds;

如果要保留集群和数据库,只清空数据库中的表,请运行如下命令:

1
DROP TABLE mytable;