用多少眼泪才能让你相信 发表于 2022-6-25 12:13:48

高斯数据库gaussDB(DWS),全网首篇对标MySQL命令集合文章

文章目录



[*]

[*]创建高斯数据库 gaussDB(DWS)
[*]连接 gaussDB(DWS)
[*]GaussDB (DWS) 命令学习
[*]

[*]`\l`: 列出所有数据库
[*]`\c 数据库名` :切换数据库
[*]创建一个表
[*]维护数据
[*]创建和管理 schema
[*]其余命令
   
[*]总结


创建高斯数据库 gaussDB(DWS)

在正式开始前需要提前创建一下 VPC,位置入口如下所示。
https://img-blog.csdnimg.cn/img_convert/87f18e5515dc9d70a060c37864fd1bd8.png
在打开的页面配置如下信息,然后创建即可。
https://img-blog.csdnimg.cn/img_convert/da1f6c5b62896c3ec56e89d16efd1cda.png
其中首要进行的修改是 基本名称 和 子网名称
创建完毕之后的结果如下所示:
https://img-blog.csdnimg.cn/img_convert/b978702fddab248a1e12f683f356ac31.png
接下来就可以配置高斯数据库 DWS 了,功能入口地址为 大数据->数据仓库服务 GaussDB(DWS)
https://img-blog.csdnimg.cn/img_convert/bec0b422219319f079a95982b4c5db12.png
这里按照华为云提示输入即可,请注意购买一个公网 IP,否则后续实践不好操作。
虚拟私有云选择前文配置内容即可。
https://img-blog.csdnimg.cn/img_convert/4a83175cb4bfa39e7781fa1397f4bdc0.png
创建之后需要等 10 分钟所有的初始化实践,然后出现 可用 状态后,表示创建成功。
https://img-blog.csdnimg.cn/img_convert/dad48991c9497e05eb1b5eb398f04df6.png
连接 gaussDB(DWS)

首先下载链接工具,下载完毕在 Download 目录对文件进行解压与链接操作。
https://img-blog.csdnimg.cn/img_convert/43d8fbee3a6cd3fd87e9916d02dbe461.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 操作界面。
https://img-blog.csdnimg.cn/img_convert/e004a9ca22f15a33f3056696be09642a.png
其中与 gaussdb=> 对应的还有一个 gaussdb->,表示为换行,一般当你的命令没有结尾时,即未出现分号 (;),会出现该输入状态。
连接到 DWS 之后,就可以进行命令学习了。
GaussDB (DWS) 命令学习

首先使用万能命令 help,得到下图所示内容。
https://img-blog.csdnimg.cn/img_convert/318f3c76bb8a2e632b5a86ea681b5b03.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 关键字基本一致,例如 Alter,Create,Drop 等内容。
ABORT            CREATE TEXT SEARCH CONFIGURATION
ALTER APP WORKLOAD GROUP          CREATE TEXT SEARCH DICTIONARY
ALTER APP WORKLOAD GROUP MAPPINGCREATE 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: 列出所有数据库

https://img-blog.csdnimg.cn/img_convert/adfb6c64588efab40006621ac5ba38ae.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 查看当前数据库下的表。
https://img-blog.csdnimg.cn/img_convert/b17aa1728de761ef2041571d5748bfa1.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); 代码复制之后的结果如下所示,注意 => 和 ->:
https://img-blog.csdnimg.cn/img_convert/aed8da5352479fc97429181f435562cf.png
然后回车运行建表脚本,得到下述内容,表示表创建完毕。
CREATE TABLE 此时再使用 \d 就能得到刚刚建立的数据表了。
https://img-blog.csdnimg.cn/img_convert/a3e92de3e1cdfd3631a9dbf4566f9c6d.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; 得到的结果如下所示:
https://img-blog.csdnimg.cn/img_convert/66f5e38b247e60ad90a4094d40d0c4b7.png
查询命令
select * from customer_t1; https://img-blog.csdnimg.cn/img_convert/c5ff75fecf2dc81f2f2721f86783731e.png
其余的查询语句参考 MySQL 的 SELECT 语法即可。
更新与删除表数据
更新与删除语句与 MySQL 一致,可以互相参考学习。
创建和管理 schema

在 GaussDB DWS 中有一个新概念的出现,叫做 Schema ,即模式。
通过管理 schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的 schema 下而不引起冲突。
有一些注意事项,抄录自官网手册:


[*]数据库集群包含一个或多个已命名数据库。用户和用户组在整个集群范围内是共享的,但是其数据并不共享。任何与服务器连接的用户都只能访问连接请求里声明的那个数据库。
[*]一个数据库可以包含一个或多个已命名的 schema,schema 又包含表及其他数据库对象,包括数据类型、函数、操作符等。同一对象名可以在不同的 schema 中使用而不会引起冲突。例如,schema1 和 schema2 都可以包含一个名为 mytable 的表。
使用 \dn 可以查看所有 schema:
https://img-blog.csdnimg.cn/img_convert/f23943b5e2241e8717847eae3b6705f9.png
使用 SHOW search_path;,可以显示当前使用的 schema,效果如下:
https://img-blog.csdnimg.cn/img_convert/ca9760763e02fbb3efc807b243457413.png
模式相关命令
查看数据库当前模式
select current_schema; https://img-blog.csdnimg.cn/img_convert/31d2740ff227ae0c2e7df0b39a1c9ea6.png
设置当前数据库模式
set current_schema=my_schema; 创建 schema 并指定 owner
create schema my_schema authorization dlpuser;   关于 schema 更多命令,可以在实战用继续学习。
其余命令

使用 show server_encoding; 可以查看数据库编码。
https://img-blog.csdnimg.cn/img_convert/c25f14695b521c2bed71879e322ac5fc.png
查看数据库用户
select * from pg_user; https://img-blog.csdnimg.cn/img_convert/1be6d5a7bc62743366523dc8ae240954.png
查看当前数据库拥有的表
select * from pg_tables; https://img-blog.csdnimg.cn/img_convert/0282d24c50eed4f98e0ce9c28b8e473d.png
总结

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 高斯数据库gaussDB(DWS),全网首篇对标MySQL命令集合文章