GaussDB數據庫語法及gsql入門

一、GaussDB數據庫語法入門

之前我們講了如何連接數據庫實例,那連接數據庫后如何使用數據庫呢?那么我們今天就帶大家了解一下GaussDB,以下簡稱GaussDB的基本語法。

關于如何連接數據庫,請戳這里。

學習本節課程之后,您將可以完成創建數據庫、創建表及向表中插入數據和查詢表中數據等操作。

1、前提條件

?? ?GaussDB實例正常運行。

?? ?已通過DAS或gsql連接數據庫實例。

2、操作步驟

  • 通過DAS或gsql連接數據庫實例。
  • 創建數據庫用戶。

? ? ? 默認只有創建實例時的管理員用戶可以訪問初始數據庫,您還可以手動創建其他數據庫用戶帳號。

postgres=# CREATE USER joe WITH PASSWORD "xxxxxxxx";

? ? ? xxxxxxxx需要替換為指定的密碼,當結果顯示為如下信息,則表示創建成功。

CREATE ROLE

? ? ? 如上創建了一個用戶名為joe,密碼為xxxxxxxxx的用戶。

? ? ? 如下命令為設置joe用戶為系統管理員。

postgres=# GRANT ALL PRIVILEGES TO joe;

? ? ? 使用GRANT命令進行相關權限設置,具體操作請參考GRANT。

? ? ? 引申信息:GaussDB對于用戶可以進行靈活的權限控制,想要了解請戳管理用戶及權限。

  • 創建數據庫。
postgres=#  CREATE DATABASE db_tpcds;

? ? ? 當結果顯示為如下信息,則表示創建成功。

CREATE DATABASE

? ? ??創建完db_tpcds數據庫后,就可以按如下方法退出postgres數據庫,使用新用戶連接到此數據庫執行接下來的創建表等操作。當然,也可以選擇繼續在默認的postgres數據庫下做后續的體驗。

postgres=#  \q  
gsql -d db_tpcds -p 8000 -U joe  
Password for user joe:  
gsql  compiled at 2020-05-08 02:59:43 commit 2143 last mr 131)  
Non-SSL connection (SSL connection is recommended when requiring high-security)  
Type "help" for help.  db_tpcds=> 
  • 創建表。

? ??創建一個名稱為mytable,只有一列的表。字段名為firstcol,字段類型為integer。

db_tpcds=>  CREATE TABLE mytable (firstcol int);

? ? ? ?未使用“DISTRIBUTE BY”指定分布列時,系統默認會指定第一列為哈希分布列,且給出提示。系統返回信息以“CREATE TABLE”結束,表示創建表成功。

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. 
CREATE TABLE

? ?向表中插入數據:

db_tpcds=> INSERT INTO mytable values (100);

? ? ? ?當結果顯示為如下信息,則表示插入數據成功。

INSERT 0 1

? ?查看表中數據:

db_tpcds=> SELECT * from mytable; firstcol  
---------- 100 
(1 row)

? ? ??引申信息:

  • 默認情況下,新的數據庫對象是創建在“$user”模式下的,例如剛剛新建的表。關于模式的更多信息請參考創建和管理schema。
  • 關于創建表的更多信息請參見創建和管理表。
  • 除了創建的表以外,數據庫還包含很多系統表。這些系統表包含集群安裝信息以及GaussDB上運行的各種查詢和進程的信息。可以通過查詢系統表來收集有關數據庫的信息。請參見查看系統表。

二、GaussDB數據庫gsql入門

gsql是GaussDB提供在命令行下運行的數據庫連接工具,可以通過此工具連接服務器并對其進行操作和維護,除了具備操作數據庫的基本功能,gsql還提供了若干高級特性,便于用戶使用。

1、基本功能

  • 連接數據庫:可以通過gsql遠程連接數據庫實例。如何使用gsql連接數據庫請參考連接實例。
  • 執行SQL語句:支持交互式地鍵入并執行SQL語句,也可以執行一個文件中指定的SQL語句。
  • 執行元命令:元命令可以幫助管理員查看數據庫對象的信息、查詢緩存區信息、格式化SQL輸出結果,以及連接到新的數據庫等。

2、使用指導

步驟 1 使用gsql連接到GaussDB實例。

gsql工具使用-d參數指定目標數據庫名、-U參數指定數據庫用戶名、-h參數指定主機名、-p參數指定端口號信息。

若未指定數據庫名稱,則使用初始化時默認生成的數據庫名稱;若未指定數據庫用戶名,則默認使用當前操作系統用戶作為數據庫用戶名;當某個值沒有前面的參數(-d、-U等)時,若連接的命令中沒有指定數據庫名(-d)則該參數會被解釋成數據庫名;如果已經指定數據庫名(-d)而沒有指定數據庫用戶名(-U)時,該參數則會被解釋成數據庫用戶名。

示例,使用jack用戶連接到遠程主機postgres數據庫的8000端口。

gsql -h 10.180.123.163 -d postgres -U jack -p 8000

詳細的gsql參數請參見命令參考。

步驟 2 執行SQL語句。

以創建數據庫human_staff為例。

CREATE DATABASE human_staff;
CREATE DATABASE

通常,輸入的命令行在遇到分號的時候結束。如果輸入的命令行沒有錯誤,結果就會輸出到屏幕上。

步驟 3 執行gsql元命令。

以列出GaussDB中所有的數據庫和描述信息為例。

postgres=#  \lList of databasesName      |  Owner   | Encoding  | Collate | Ctype |   Access privileges   
----------------+----------+-----------+---------+-------+-----------------------human_resource | root | SQL_ASCII | C       | C     | postgres       | root | SQL_ASCII | C       | C     | template0      | root | SQL_ASCII | C       | C     | =c/root         +|          |           |         |       | root=CTc/roottemplate1      | root | SQL_ASCII | C       | C     | =c/root          +|          |           |         |       | root=CTc/roothuman_staff    | root | SQL_ASCII | C       | C     | 
(5 rows)

更多gsql元命令請參見元命令參考。

3、示例

以把一個查詢分成多行輸入為例。注意提示符的變化:

postgres=# CREATE TABLE HR.areaS(
postgres(# area_ID   NUMBER,
postgres(# area_NAME VARCHAR2(25)
postgres-# )tablespace EXAMPLE;
CREATE TABLE

查看表的定義:

postgres=# \d HR.areaSTable "hr.areas"Column   |         Type          | Modifiers 
-----------+-----------------------+-----------area_id   | numeric               | not nullarea_name | character varying(25) |

向HR.areaS表插入四行數據:

postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (1, 'Europe');
INSERT 0 1
postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (2, 'Americas');
INSERT 0 1
postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (3, 'Asia');
INSERT 0 1
postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (4, 'Middle East and Africa');
INSERT 0 1

切換提示符:

postgres=# \set PROMPT1 '%n@%m %~%R%#'
root@[local] postgres=#

查看表:

root@[local] postgres=#SELECT * FROM HR.areaS;area_id |       area_name        
---------+------------------------1 | Europe4 | Middle East and Africa2 | Americas3 | Asia
(4 rows)

可以用\pset命令以不同的方法顯示表:

root@[local] postgres=#\pset border 2
Border style is 2.
root@[local] postgres=#SELECT * FROM HR.areaS;
+---------+------------------------+
| area_id |       area_name        |
+---------+------------------------+
|       1 | Europe                 |
|       2 | Americas               |
|       3 | Asia                   |
|       4 | Middle East and Africa |
+---------+------------------------+
(4 rows)root@[local] postgres=#\pset border 0
Border style is 0.
root@[local] postgres=#SELECT * FROM HR.areaS;
area_id       area_name        
------- ----------------------1 Europe2 Americas3 Asia4 Middle East and Africa
(4 rows)

使用元命令:

root@[local] postgres=#\a \t \x
Output format is unaligned.
Showing only tuples.
Expanded display is on.root@[local] postgres=#SELECT * FROM HR.areaS;
area_id|2
area_name|Americasarea_id|1
area_name|Europearea_id|4
area_name|Middle East and Africaarea_id|3
area_name|Asia

?三、總結

云數據庫 GaussDB各特性版本的功能發布和對應的文檔動態,歡迎體驗。

GaussDB是華為公司傾力打造的自研企業級分布式關系型數據庫,該產品支持優異的分布式事務,同城跨AZ部署,數據0丟失,支持1000+擴展能力,PB級海量存儲等企業級數據庫特性。擁有云上高可用,高可靠,高安全,彈性伸縮,一鍵部署,快速備份恢復,監控告警等關鍵能力,能為企業提供功能全面,穩定可靠,擴展性強,性能優越的企業級數據庫服務。

今天就為大家介紹到這里啦,歡迎交流~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213620.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213620.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213620.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【開題報告】基于SpringBoot的消防知識科普平臺的設計與實現

1.選題背景 消防知識科普平臺的設計與實現是為了提高公眾對于消防安全的認知和應對能力,促進社會消防文化的普及和發展。在中國,火災事故時有發生,造成了重大人員傷亡和財產損失。因此,建立一個基于Spring Boot的消防知識科普平臺…

docker---網絡

docker的網絡模式: 1、橋接模式:創建docker時不需要指定網絡類型,默認模式。 2、host模式: 容器將不會虛擬出自己的網卡,也沒有自己的ip地址,全部使用宿主機的ip和端口。 3、container模式:容器和容器之間…

第五屆計算機能力挑戰賽國賽C語言組題解(專科組)

前言: ??前兩天計算機能力挑戰賽國賽結束了,拿著題做了一遍,發現難度真的不大,比省賽簡單多了,只是有時候可能有的同學拿著題,沒認真仔細去讀,或者說緊張了導致自己發揮不好吧。以下是個人的題…

【運維】將Linux的硬盤當內存用,Linux內存不夠用的時候如何用硬盤提升內存

文章目錄 內存不夠用,可以用硬盤當內存嗎如何取消這種交換空間交換空間是優先使用的還是說原始內存是會被優先使用的 內存不夠用,可以用硬盤當內存嗎 是的,可以使用硬盤作為虛擬內存來擴展容器中的內存。這個過程被稱為“交換”或“交換空間…

Django 模型操作-分頁(七)

一、連接MySql數據庫 1、先安裝MySQL 2、再安裝MySQL驅動 使用mysqlclient pip install mysqlclient 如果上面的命令安裝失敗, 則嘗試使用國內豆瓣源安裝: pip install -i https://pypi.douban.com/simple mysqlclient 二、在settings.py中配置 三、 book表的數據…

Android系統啟動過程-uBoot+Kernel+Android

摘要:本文是參考大量網上資源在結合自己查看源代碼總結出來的,讓自己同時也讓大家加深對Android系統啟動過程有一個更加深入的了解!再次強調,本文的大多數功勞應歸功于那些原創者們,同時一些必要的參考鏈接我會一一附上…

1009 說反話

給定一句英語,要求你編寫程序,將句中所有單詞的順序顛倒輸出。 輸入格式: 測試輸入包含一個測試用例,在一行內給出總長度不超過 80 的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小…

【機器學習實訓項目】黑色星期五畫像分析

目錄 前言 一、項目概述 1.1 項目簡介 1.2 項目背景 1.3 項目目標 二、數據分析 2.1 導入庫 2.2 數據基本信息 三、畫像分析 3.1 畫像1:消費金額Top10 3.2 畫像2:高頻消費Top10 3.3 畫像3:人均消費金額Top10 3.4 畫像4:男女消費對…

創投課程第四期 | Web3一級市場投資框架的演變及投資人能力框架的構成

協會邀請了來自Zonff Partners的合伙人——Colin,作為VC創投課程第4期的嘉賓,在北京時間12月9日(周六)下午14:00 PM-15:00 PM于螞蟻鏈科技產業創新中心進行線下分享,屆時將與所有對Web3投資、創業心懷熱忱的朋友們共同探討《WEB3一級市場投資…

雙向鏈表(數據結構與算法)

???????????????? ???????????????? 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

程序啟動時訪問了未初始化的類指針引發內存訪問違例導致程序崩潰的問題排查

目錄 1、問題說明 2、使用Windbg動態調試去初步分析 3、使用Windbg詳細分析 4、最后 VC常用功能開發匯總(專欄文章列表,歡迎訂閱,持續更新...)https://blog.csdn.net/chenlycly/article/details/124272585C軟件異常排查從入門…

20、XSS——XSS跨站腳本

文章目錄 一、XSS漏洞概述1.1 XSS簡介 二、XSS漏洞分類2.1 反射型XSS2.2 存儲型XSS2.3 DOM型XSS 三、XSS payload構造以及變形3.1 XSS payload構造3.2 XSS payload 變形 一、XSS漏洞概述 1.1 XSS簡介 XSS被稱為跨站腳本攻擊(Cross-site scripting)&…

linux dpdk 介紹

DPDK(Data Plane Development Kit)是一個由英特爾發起的開源項目,旨在提供一個快速、高性能的數據平面開發工具包,使網絡應用能夠在通用處理器上實現網絡功能虛擬化(NFV)和軟件定義網絡(SDN&…

k8s volumes and data

Overview 傳統上,容器引擎(Container Engine)不提供比容器壽命更長的存儲。由于容器被認為是瞬態(transient)的,這可能會導致數據丟失或復雜的外部存儲選項。Kubernetes卷共享 Pod 生命周期,而不是其中的容器。如果容器終止,數據…

排序的簡單理解(上)

1. 排序的概念及引用 1.1 排序的概念 排序:所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作(按照我們的需求能夠有序的將數據信息排列起來)。 穩定性:假…

TeeChart.NET 2023.11.17 Crack

.NET 的 TeeChart 圖表控件提供了一個出色的通用組件套件,可滿足無數的圖表需求,也針對重要的垂直領域,例如金融、科學和統計領域。 數據可視化 數十種完全可定制的交互式圖表類型、地圖和儀表指示器,以及完整的功能集&#xff0c…

醫療設備智慧管理助力醫院提質增效,阿基米德amp;健康界實踐分享

近日,蘇州阿基米德網絡科技有限公司與醫療領域頭部級媒體健康界,聯合舉辦“數智為擎 提質增效——醫學裝備智慧管理創新發展論壇”的直播活動。 直播現場,來自上海交通大學醫學院附屬同仁醫院、中華醫學會航海醫學分會、蘇州阿基米德的專家們…

統信UOS_麒麟KYLINOS上使用命令行配置NTP服務器

原文鏈接:統信UOS/麒麟KYLINOS上使用命令行配置NTP hello,大家好啊,今天我要給大家介紹的是在統信UOS/麒麟KYLINOS操作系統上使用命令行配置NTP(Network Time Protocol)服務器的方法。在內網環境下,許多企業…

13、C++異常處理

13、c異常處理 拋出異常捕獲異常未拋出異常時的流程拋出異常時的流程捕獲異常匹配順序異常說明異常處理構造函數中的異常析構函數中的異常標準庫異常類 拋出異常 throw 異常對象可以拋出基本類型的對象,如:throw -1;throw "內存分配失敗!";也可以拋出類類…

AVP對縱向控制ESP(Ibooster)的需求規范

目錄 1. 版本記錄... 3 2. 文檔范圍和控制... 4 2.1 目的/范圍... 4 2.2 文檔沖突... 4 2.3 文檔授權... 4 2.4 文檔更改控制... 4 3. 功能概述... 5 4. 系統架構... 6 5. 主要安全目標... 7 5.1 …