OpenGauss 學習:基本操作


openGauss是一款開源關系型數據庫管理系統,采用木蘭寬松許可證v2發行。openGauss內核源自PostgreSQL,深度融合華為在數據庫領域多年的經驗,結合企業級場景需求,持續構建競爭力特性。同時openGauss也是一個開源的數據庫平台,鼓勵社區貢獻、合作。

  • openGauss 數據庫特征
    1.用戶必須擁有數據庫創建的權限或者是數據庫的系統管理員權限才能創建數據庫。
    2.openGauss 默認包含兩個模板數據庫 template0、template1,以及一個默認的用戶數據庫 postgres。
    3.用戶創建數據庫時實際上就是通過拷貝模板數據庫(默認template1)來創建新的數據庫,同時要避免使用客戶端或其他手段連接及操作兩個模板數據庫。
    4.openGauss 允許創建的數據庫總數目上限為 128 個。數據庫系統中會有多個數據庫,但是客戶端程序一次只能連接一個數據庫。也不能在不同的數據庫之間互相查詢。

  • 使用 gsql 本地連接數據庫
    gsql 是 openGauss 提供的在命令行下運行的數據庫連接工具。平台連接數據庫語句:

gsql -d postgres -U gaussdb -W'passwd';

其中 -d 參數代表數據庫,-U 參數代表用戶名,-W 參數代表密碼;
連接成功后和 mySQL 一樣會有提示語句。(退出用 \q)

  • 常用操作語句

openGauss 常用數據庫操作語句:

切換數據庫:

\c test

上述語句代表從當前數據庫切換到test數據庫。

查看數據庫列表:

\l

查看表列表及表信息:

\d

創建數據庫:
創建一個新的數據庫。缺省情況下新數據庫將通過復制標准系統數據庫 template0來創建,且僅支持使用 template0 來創建。另外需要注意的是,在創建數據庫過程中,若出現類似“could not initialize database directory”的錯誤提示,可能是由於文件系統上數據目錄的權限不足或磁盤滿等原因引起。

語法格式:

CREATE DATABASE database_name
    [ [ WITH ] { [ OWNER [=] user_name ] |
               [ TEMPLATE [=] template ] |
               [ ENCODING [=] encoding ] |
               [ LC_COLLATE [=] lc_collate ] |
               [ LC_CTYPE [=] lc_ctype ] |
               [ DBCOMPATIBILITY [=] compatibilty_type ] |
               [ TABLESPACE [=] tablespace_name ] |
               [ CONNECTION LIMIT [=] connlimit ]}[...] ];              

上述建表語句中,OWNER 參數可用於指定表的所屬用戶,TEMPLATE 參數可用於指定模板數據庫,ENCODING 參數可用於編碼格式,TABLESPACE 參數可用於指定表空間。

創建數據庫示例:

--創建一個GBK編碼的數據庫music(本地環境的編碼格式必須也為GBK)。
postgres=> CREATE DATABASE music ENCODING 'GBK' template = template0;
--創建數據庫music2,並指定所有者為jim。
postgres=> CREATE DATABASE music2 OWNER jim;
--用模板template0創建數據庫music3,並指定所有者為jim。
postgres=> CREATE DATABASE music3 OWNER jim TEMPLATE template0;

修改數據庫示例:

--設置music數據庫的連接數為10。
postgres=# ALTER DATABASE music CONNECTION LIMIT= 10;
--將music名稱改為music4。
postgres=# ALTER DATABASE music RENAME TO music4;
--將數據庫music2的所屬者改為tom。
postgres=# ALTER DATABASE music2 OWNER TO tom;
--設置music3的表空間為PG_DEFAULT。
postgres=# ALTER DATABASE music3 SET TABLESPACE PG_DEFAULT;
--關閉在數據庫music3上缺省的索引掃描。
postgres=# ALTER DATABASE music3 SET enable_indexscan TO off;
--重置enable_indexscan參數。
postgres=# ALTER DATABASE music3 RESET enable_indexscan;

刪除數據庫:

--刪除數據庫。
postgres=# DROP DATABASE music2;

openGauss 常用表操作語句:

創建
表是建立在數據庫中的,在不同的數據庫中可以存放相同的表。甚至可以通過使用模式在同一個數據庫中創建相同名稱的表。

建表語句示例:

CREATE TABLE tb1
(
    c_sk             integer,
    c_id             char(5),
    c_name              char(6),
    c_sex               char(8)
);

上述建表語句中, c_sk 、c_id、c_name 和 c_sex 代表表的字段名,integer、char(5)、char(6) 和 char(8) 分別是這四字段名稱的數據類型。

插入
示例:

INSERT INTO tb1(c_sk, c_id, c_name,c_sex) VALUES (3769, 'a', 'Grace','women');
INSERT INTO tb1 VALUES (3769, 'a', 'Grace','women');
INSERT INTO tb1 (c_sk, c_name) VALUES (3769, 'Grace');
INSERT INTO tb1(c_sk, c_id, c_name,c_sex) VALUES (3769, 'a', 'Grace',DEFAULT);
INSERT INTO tb1 DEFAULT VALUES;
INSERT INTO tb1(c_sk, c_id, c_name,c_sex) VALUES (3769, 'a', 'Grace','women'),(3777, 'b', 'bob','women');

更新
提供 表的名稱;要更新的字段名;字段的新值;要更新的行
示例:

UPDATE mytb SET c__sk = 1234 WHERE c_sk = 5678;
UPDATE mytb SET c__sk = c_sk+8;
UPDATE mytb SET c__sk = 1234,c_name='agrin' WHERE c_sk = 5678;

刪除
示例:

DELETE FROM mytb WHERE c_sk = 1234;
DELETE FROM mytb;
TRUNCATE TABLE mytb;

刪除表

DROP TABLE mydb;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM