高斯数据库gaussDB(DWS),全网首篇对标MySQL命令集合文章【这次高斯不是数学家】

举报
梦想橡皮擦 发表于 2022/06/06 15:14:40 2022/06/06
【摘要】 创建高斯数据库 gaussDB(DWS)在正式开始前需要提前创建一下 VPC,位置入口如下所示。在打开的页面配置如下信息,然后创建即可。其中首要进行的修改是 基本名称 和 子网名称创建完毕之后的结果如下所示:接下来就可以配置高斯数据库 DWS 了,功能入口地址为 大数据->数据仓库服务 GaussDB(DWS)这里按照华为云提示输入即可,请注意购买一个公网 IP,否则后续实践不好操作。虚拟...

创建高斯数据库 gaussDB(DWS)

在正式开始前需要提前创建一下 VPC,位置入口如下所示。
image.png

在打开的页面配置如下信息,然后创建即可。

image.png

其中首要进行的修改是 基本名称子网名称

创建完毕之后的结果如下所示:

image.png

接下来就可以配置高斯数据库 DWS 了,功能入口地址为 大数据->数据仓库服务 GaussDB(DWS)

image.png

这里按照华为云提示输入即可,请注意购买一个公网 IP,否则后续实践不好操作。

虚拟私有云选择前文配置内容即可。

image.png

创建之后需要等 10 分钟所有的初始化实践,然后出现 可用 状态后,表示创建成功。

image.png

连接 gaussDB(DWS)

首先下载链接工具,下载完毕在 Download 目录对文件进行解压与链接操作。

image.png

unzip dws_client_8.1.x_redhat_x64.zip
source gsql_env.sh

去 DWS 详情页拿到外网 IP,接下来就可以使用下述命令行进行连接。

gsql -d gaussdb -h <DWS的公网IP> -U dbadmin -p 8000 -r -W <用户dbadmin密码>;

使用公网 IP 和密码登录之后,进入到 DWS 操作界面。
image.png

其中与 gaussdb=> 对应的还有一个 gaussdb->,表示为换行,一般当你的命令没有结尾时,即未出现分号 (;),会出现该输入状态。

连接到 DWS 之后,就可以进行命令学习了。

GaussDB (DWS) 命令学习

首先使用万能命令 help,得到下图所示内容。
image.png

其中出现了很多关键信息

You are using gsql, the command-line interface to gaussdb.
Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with gsql commands
       \g or terminate with semicolon to execute query
       \q to quit

使用 \h 得到 SQL 命令,具体如下,省略了部分结果,其中涉及的内容与 MySQL 关键字基本一致,例如 AlterCreateDrop 等内容。

ABORT            CREATE TEXT SEARCH CONFIGURATION
  ALTER APP WORKLOAD GROUP          CREATE TEXT SEARCH DICTIONARY
  ALTER APP WORKLOAD GROUP MAPPING  CREATE TRIGGER
  ALTER DATA SOURCE                 CREATE TYPE
  ALTER DATABASE                    CREATE USER
  ALTER DEFAULT PRIVILEGES          CREATE VIEW
  ALTER DIRECTORY                   CREATE WORKLOAD GROUP
...skipping 1 line
  ALTER SESSION                     DROP NODE GROUP
  ALTER SYNONYM                     DROP OWNED
  ALTER SYSTEM KILL SESSION         DROP PROCEDURE
  ALTER TABLE                       DROP REDACTION POLICY
  ALTER TABLE PARTITION             DROP RESOURCE POOL
...skipping 1 line
  CREATE TABLE                      TRUNCATE
  CREATE TABLE AS                   UPDATE
  CREATE TABLE PARTITION            VACUUM
  CREATE TABLESPACE                 VALUES

使用 \? 得到的是 gsql 命令,这些是需要我们仔细学习的内容。

\copyright 获取的是版权信息,得到内容如下所示:

GaussDB Database Management System
Copyright (c) Huawei Technologies Co., Ltd. 2018. All rights reserved.`

首先记住 \q 是退出,但是如果一口气把所有命令都记住是不可能的,因为编程属于熟能生巧的技术工种,所以死记硬背效果不大。

我们先看一下基本 gsql 命令。

\l: 列出所有数据库

image.png

\c 数据库名 :切换数据库

使用 \c 可以切换数据库,例如下述命令:

\c postgres

使用之后会要求再次输入密码:

assword for user dbadmin:
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_128_GCM_SHA256, bits: 128)
You are now connected to database "postgres" as user "dbadmin".

切换成功之后,会发现输入状态提示位置已经切换到新的数据库中。

postgres=> \d

此时我们可以用 \d 查看当前数据库下的表

image.png

如果该数据库下没有表,则提示下述无关系。

No relations found.

创建一个表

为了后续测试,我们需要创建一个数据表,使用命令与 MySQL 一致,具体如下:

CREATE TABLE customer_t1
(
    c_customer_sk             integer,
    c_customer_id             char(5),
    c_first_name              char(6),
    c_last_name               char(8)
)
with (orientation = column,compression=middle)
distribute by hash (c_last_name);

代码复制之后的结果如下所示,注意 =>->
image.png

然后回车运行建表脚本,得到下述内容,表示表创建完毕。

CREATE TABLE

此时再使用 \d 就能得到刚刚建立的数据表了。
image.png

表的字段名:c_customer_sk 、c_customer_id、c_first_name 和 c_last_name 是,integer、char(5)、char(6)和 char(8)是这四字段名称的类型。

表创建完毕,就可以对数据进行管理了,常见的操作是插入,更新,删除。

维护数据

插入数据

INSERT INTO customer_t1(c_customer_sk, c_customer_id, c_first_name) VALUES (5566, 'hello', '橡皮擦');

插入上述数据,由于 橡皮擦 超过了数据长度,所以出现下述异常。

ERROR:  value too long for type character(6)
CONTEXT:  referenced column: c_first_name

修改之后,插入成功:

INSERT INTO customer_t1(c_customer_sk, c_customer_id, c_first_name) VALUES (5566, 'hello', '???');

提示信息:

INSERT 0 1

此时可以用 \d+ 命令查看表的属性

\d+ customer_t1;

得到的结果如下所示:

image.png

查询命令

select * from customer_t1;

image.png

其余的查询语句参考 MySQL 的 SELECT 语法即可。

更新与删除表数据
更新与删除语句与 MySQL 一致,可以互相参考学习。

创建和管理 schema

在 GaussDB DWS 中有一个新概念的出现,叫做 Schema ,即模式。

通过管理 schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的 schema 下而不引起冲突。

有一些注意事项,抄录自官网手册:

  • 数据库集群包含一个或多个已命名数据库。用户和用户组在整个集群范围内是共享的,但是其数据并不共享。任何与服务器连接的用户都只能访问连接请求里声明的那个数据库。
  • 一个数据库可以包含一个或多个已命名的 schema,schema 又包含表及其他数据库对象,包括数据类型、函数、操作符等。同一对象名可以在不同的 schema 中使用而不会引起冲突。例如,schema1 和 schema2 都可以包含一个名为 mytable 的表。

使用 \dn 可以查看所有 schema:
image.png

使用 SHOW search_path;,可以显示当前使用的 schema,效果如下:
image.png

模式相关命令
查看数据库当前模式


select current_schema;

image.png

设置当前数据库模式

set current_schema=my_schema;

创建 schema 并指定 owner

create schema my_schema authorization dlpuser;

关于 schema 更多命令,可以在实战用继续学习。

其余命令

使用 show server_encoding; 可以查看数据库编码。
image.png

查看数据库用户

select * from pg_user;

image.png

查看当前数据库拥有的表

select * from pg_tables;

image.png

总结

本篇博客从 DWS 初始化入手,为大家重点介绍了最常用的 Gaussdb 命令,其中 SQL 部分参考 MySQL 知识点即可,gsql 可以着重学习一下,当然 DWS 还有更多的技能栈,例如 分区索引视图序列定时任务,我们下篇博客见~

【这次高斯不是数学家】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/345260

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。