創(chuàng)建高斯數(shù)據(jù)庫 gaussDB(DWS)
在正式開始前需要提前創(chuàng)建一下 VPC,位置入口如下所示。
在打開的頁面配置如下信息,然后創(chuàng)建即可。
其中首要進(jìn)行的修改是 基本名稱 和 子網(wǎng)名稱
創(chuàng)建完畢之后的結(jié)果如下所示:
接下來就可以配置高斯數(shù)據(jù)庫 DWS 了,功能入口地址為 大數(shù)據(jù)->數(shù)據(jù)倉庫服務(wù) GaussDB(DWS)
這里按照華為云提示輸入即可,請注意購買一個(gè)公網(wǎng) IP,否則后續(xù)實(shí)踐不好操作。
虛擬私有云選擇前文配置內(nèi)容即可。
創(chuàng)建之后需要等 10 分鐘所有的初始化實(shí)踐,然后出現(xiàn) 可用 狀態(tài)后,表示創(chuàng)建成功。
連接 gaussDB(DWS)
首先下載鏈接工具,下載完畢在 Download 目錄對文件進(jìn)行解壓與鏈接操作。
unzip dws_client_8.1.x_redhat_x64.zip
source gsql_env.sh
去 DWS 詳情頁拿到外網(wǎng) IP,接下來就可以使用下述命令行進(jìn)行連接。
gsql -d gaussdb -h <DWS的公網(wǎng)IP> -U dbadmin -p 8000 -r -W <用戶dbadmin密碼>;
使用公網(wǎng) IP 和密碼登錄之后,進(jìn)入到 DWS 操作界面。
其中與 gaussdb=>
對應(yīng)的還有一個(gè) gaussdb->
,表示為換行,一般當(dāng)你的命令沒有結(jié)尾時(shí),即未出現(xiàn)分號 (;
),會(huì)出現(xiàn)該輸入狀態(tài)。
連接到 DWS 之后,就可以進(jìn)行命令學(xué)習(xí)了。
GaussDB (DWS) 命令學(xué)習(xí)
首先使用萬能命令 help
,得到下圖所示內(nèi)容。
其中出現(xiàn)了很多關(guān)鍵信息
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 命令,具體如下,省略了部分結(jié)果,其中涉及的內(nèi)容與 MySQL 關(guān)鍵字基本一致,例如 Alter
,Create
,Drop
等內(nèi)容。
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
命令,這些是需要我們仔細(xì)學(xué)習(xí)的內(nèi)容。
\copyright
獲取的是版權(quán)信息,得到內(nèi)容如下所示:
GaussDB Database Management System
Copyright (c) Huawei Technologies Co., Ltd. 2018. All rights reserved.`
首先記住 \q
是退出,但是如果一口氣把所有命令都記住是不可能的,因?yàn)榫幊虒儆谑炷苌傻募夹g(shù)工種,所以死記硬背效果不大。
我們先看一下基本 gsql
命令。
\l: 列出所有數(shù)據(jù)庫
\c 數(shù)據(jù)庫名 :切換數(shù)據(jù)庫
使用 \c
可以切換數(shù)據(jù)庫,例如下述命令:
\c postgres
使用之后會(huì)要求再次輸入密碼:
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".
切換成功之后,會(huì)發(fā)現(xiàn)輸入狀態(tài)提示位置已經(jīng)切換到新的數(shù)據(jù)庫中。
postgres=> \d
此時(shí)我們可以用 \d
查看當(dāng)前數(shù)據(jù)庫下的表。
如果該數(shù)據(jù)庫下沒有表,則提示下述無關(guān)系。
No relations found.
創(chuàng)建一個(gè)表
為了后續(xù)測試,我們需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)表,使用命令與 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);
代碼復(fù)制之后的結(jié)果如下所示,注意 =>
和 ->
:
然后回車運(yùn)行建表腳本,得到下述內(nèi)容,表示表創(chuàng)建完畢。
CREATE TABLE
此時(shí)再使用 \d
就能得到剛剛建立的數(shù)據(jù)表了。
表的字段名:c_customer_sk 、c_customer_id、c_first_name 和 c_last_name 是,integer、char(5)、char(6)和 char(8)是這四字段名稱的類型。
表創(chuàng)建完畢,就可以對數(shù)據(jù)進(jìn)行管理了,常見的操作是插入,更新,刪除。
維護(hù)數(shù)據(jù)
插入數(shù)據(jù)
INSERT INTO customer_t1(c_customer_sk, c_customer_id, c_first_name) VALUES (5566, 'hello', '橡皮擦');
插入上述數(shù)據(jù),由于 橡皮擦
超過了數(shù)據(jù)長度,所以出現(xiàn)下述異常。
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
此時(shí)可以用 \d+
命令查看表的屬性
\d+ customer_t1;
得到的結(jié)果如下所示:
查詢命令
select * from customer_t1;
其余的查詢語句參考 MySQL 的 SELECT 語法即可。
更新與刪除表數(shù)據(jù)
更新與刪除語句與 MySQL 一致,可以互相參考學(xué)習(xí)。
創(chuàng)建和管理 schema
在 GaussDB DWS 中有一個(gè)新概念的出現(xiàn),叫做 Schema ,即模式。
通過管理 schema,允許多個(gè)用戶使用同一數(shù)據(jù)庫而不相互干擾,可以將數(shù)據(jù)庫對象組織成易于管理的邏輯組,同時(shí)便于將第三方應(yīng)用添加到相應(yīng)的 schema 下而不引起沖突。
有一些注意事項(xiàng),抄錄自官網(wǎng)手冊:
- 數(shù)據(jù)庫集群包含一個(gè)或多個(gè)已命名數(shù)據(jù)庫。用戶和用戶組在整個(gè)集群范圍內(nèi)是共享的,但是其數(shù)據(jù)并不共享。任何與服務(wù)器連接的用戶都只能訪問連接請求里聲明的那個(gè)數(shù)據(jù)庫。
- 一個(gè)數(shù)據(jù)庫可以包含一個(gè)或多個(gè)已命名的 schema,schema 又包含表及其他數(shù)據(jù)庫對象,包括數(shù)據(jù)類型、函數(shù)、操作符等。同一對象名可以在不同的 schema 中使用而不會(huì)引起沖突。例如,schema1 和 schema2 都可以包含一個(gè)名為 mytable 的表。
使用 \dn
可以查看所有 schema:
使用 SHOW search_path;
,可以顯示當(dāng)前使用的 schema,效果如下:
模式相關(guān)命令
查看數(shù)據(jù)庫當(dāng)前模式
select current_schema;
設(shè)置當(dāng)前數(shù)據(jù)庫模式
set current_schema=my_schema;
創(chuàng)建 schema 并指定 owner
create schema my_schema authorization dlpuser;
關(guān)于 schema 更多命令,可以在實(shí)戰(zhàn)用繼續(xù)學(xué)習(xí)。
其余命令
使用 show server_encoding;
可以查看數(shù)據(jù)庫編碼。
查看數(shù)據(jù)庫用戶
select * from pg_user;
查看當(dāng)前數(shù)據(jù)庫擁有的表
select * from pg_tables;
文章來源:http://www.zghlxwxcb.cn/news/detail-412527.html
總結(jié)
本篇博客從 DWS 初始化入手,為大家重點(diǎn)介紹了最常用的 Gaussdb 命令,其中 SQL 部分參考 MySQL 知識點(diǎn)即可,gsql 可以著重學(xué)習(xí)一下,當(dāng)然 DWS 還有更多的技能棧,例如 分區(qū),索引,視圖,序列,定時(shí)任務(wù),我們下篇博客見~文章來源地址http://www.zghlxwxcb.cn/news/detail-412527.html
到了這里,關(guān)于高斯數(shù)據(jù)庫gaussDB(DWS),全網(wǎng)首篇對標(biāo)MySQL命令集合文章的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!