目錄
一秃臣、什么是SQL涧衙?
1、SQL的概念
2奥此、SQL的特點(diǎn)
3弧哎、SQL發(fā)展簡史
二、openGauss數(shù)據(jù)庫的“SQL”
1稚虎、數(shù)據(jù)類型(常用)
數(shù)值類型
貨幣類型
布爾類型
字符類型
日期/時間類型
2撤嫩、openGauss數(shù)據(jù)庫SQL基本語法
創(chuàng)建用戶(CREATE USER)
創(chuàng)建和管理數(shù)據(jù)庫
創(chuàng)建表(CREATE TABLE)
向表中插入數(shù)據(jù)
更新表中數(shù)據(jù)
查看數(shù)據(jù)
刪除表中數(shù)據(jù)
三、參考資料
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一蠢终、什么是SQL序攘?
1、SQL的概念
結(jié)構(gòu)化查詢語言(SQL)是用于訪問和處理關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)計算機(jī)語言寻拂。
SQL提供了各種任務(wù)的語句程奠,包括:
- 查詢數(shù)據(jù)。
- 在表中插入祭钉,更新和刪除行瞄沙。
- 創(chuàng)建,替換朴皆,更改和刪除對象帕识。
- 控制對數(shù)據(jù)庫及其對象的訪問。
- 保證數(shù)據(jù)庫的一致性和完整性遂铡。
SQL語言由用于處理數(shù)據(jù)庫和數(shù)據(jù)庫對象的命令和函數(shù)組成:
- DDL(data definition language)數(shù)據(jù)定義語言肮疗,用戶定義和管理sql數(shù)據(jù)庫中所有對象的語言。 主要命令:create扒接、alter伪货、drop等
- DML(data manipulation language)數(shù)據(jù)操作語言。 主要命令:select钾怔、update碱呼、insert、delete等
- DCL(date control language)數(shù)據(jù)庫控制功能宗侦。主要命令:grant愚臀、deny、revoke矾利、commit姑裂、savepoint馋袜、rollback等
2、SQL的特點(diǎn)
- SQL語言集數(shù)據(jù)查詢舶斧、數(shù)據(jù)操縱欣鳖、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體
- 面向集合的語言
- 非過程語言
- 類似自然語言,簡潔易用
- 自含式語言茴厉,又是嵌入式語言泽台。可獨(dú)立使用矾缓,也可嵌入到宿主語言中怀酷。
3、SQL發(fā)展簡史
SQL發(fā)展簡史如下:
- 1986年而账,ANSI X3.135-1986胰坟,ISO/IEC 9075:1986,SQL-86
- 1989年泞辐,ANSI X3.135-1989笔横,ISO/IEC 9075:1989,SQL-89
- 1992年咐吼,ANSI X3.135-1992吹缔,ISO/IEC 9075:1992,SQL-92(SQL2)
- 1999年锯茄,ISO/IEC 9075:1999厢塘,SQL:1999(SQL3)
- 2003年,ISO/IEC 9075:2003肌幽,SQL:2003(SQL4)
- 2011年晚碾,ISO/IEC 9075:200N,SQL:2011(SQL5)
//注:
ANSI是美國國家標(biāo)準(zhǔn)學(xué)會(American National Standards Institute)的英文簡稱喂急,成立于1918年格嘁。
ISO:國際標(biāo)準(zhǔn)化組織(International Organization for Standardization)。
IEC:國際電工委員會(International Electrotechnical Commission)廊移。
//
二糕簿、openGauss數(shù)據(jù)庫的“SQL”
openGauss數(shù)據(jù)庫支持的SQL標(biāo)準(zhǔn),默認(rèn)支持SQL2狡孔、SQL3和SQL4的主要特性懂诗。當(dāng)然了, 一般說到數(shù)據(jù)庫的SQL語句苗膝,就離不開兩個方面: 一是數(shù)據(jù)類型殃恒,二是sql語句基本語法。下文就此簡單闡述一下:
1、數(shù)據(jù)類型(常用)
openGauss數(shù)據(jù)庫支持的數(shù)據(jù)類型涵蓋非常廣离唐, 幾乎包含所有形式的數(shù)據(jù)類型隆嗅,如:數(shù)值類型、貨幣類型侯繁、布爾類型、字符類型泡躯、二進(jìn)制類型贮竟、日期/時間類型、幾何類型较剃、網(wǎng)絡(luò)地址類型咕别、位串類型、文本搜索類型写穴、UUID類型惰拱、JSON/JSONB類型、HLL數(shù)據(jù)類型啊送、范圍類型偿短、對象標(biāo)識符類型、偽類型馋没、列存表支持的數(shù)據(jù)類型昔逗、XML類型、賬本數(shù)據(jù)庫使用的數(shù)據(jù)類型等篷朵。 但是實際業(yè)務(wù)場景中大部分類型用到的比較少勾怒,具體遇到時可參考官方文檔說明。
下文參考并整理了日常應(yīng)用開發(fā)中常用的主要數(shù)據(jù)類型声旺,主要包含:數(shù)值類型笔链、貨幣類型、布爾類型腮猖、字符類型鉴扫、日期/時間類型等。
數(shù)值類型
表1:整數(shù)數(shù)據(jù)類型
說明:TINYINT缚够、SMALLINT幔妨、INTEGER、BIGINT和INT16類型存儲各種范圍的數(shù)字谍椅,也就是整數(shù)误堡。試圖存儲超出范圍以外的數(shù)值將會導(dǎo)致錯誤。
常用的類型是INTEGER雏吭,因為它提供了在范圍锁施、存儲空間、性能之間的最佳平衡。一般只有取值范圍確定不超過SMALLINT的情況下悉抵,才會使用SMALLINT類型肩狂。而只有在INTEGER的范圍不夠的時候才使用BIGINT,因為前者相對快得多姥饰。
表2:任意精度型
說明:與整數(shù)類型相比傻谁,任意精度類型需要更大的存儲空間,其存儲效率列粪、運(yùn)算效率以及壓縮比效果都要差一些审磁。在進(jìn)行數(shù)值類型定義時,優(yōu)先選擇整數(shù)類型岂座。當(dāng)且僅當(dāng)數(shù)值超出整數(shù)可表示最大范圍時态蒂,再選用任意精度類型。
使用Numeric/Decimal進(jìn)行列定義時费什,建議指定該列的精度p以及標(biāo)度s钾恢。
表3:序列整型
說明:SMALLSERIAL、SERIAL鸳址、BIGSERIAL和LARGESERIAL類型不是真正的類型瘩蚪,只是為在表中設(shè)置唯一標(biāo)識做的概念上的便利。因此氯质,創(chuàng)建一個整數(shù)字段募舟,并且把它的缺省數(shù)值安排為從一個序列發(fā)生器讀取。應(yīng)用了一個NOT NULL約束以確保NULL不會被插入闻察。在大多數(shù)情況下用戶可能還希望附加一個UNIQUE或PRIMARY KEY約束避免意外地插入重復(fù)的數(shù)值拱礁,但這個不是自動的。最后辕漂,將序列發(fā)生器從屬于那個字段呢灶,這樣當(dāng)該字段或表被刪除的時候也一并刪除它。目前只支持在創(chuàng)建表時候指定SERIAL列钉嘹,不可以在已有的表中鸯乃,增加SERIAL列。另外臨時表也不支持創(chuàng)建SERIAL列跋涣。因為SERIAL不是真正的類型缨睡,也不可以將表中存在的列類型轉(zhuǎn)化為SERIAL。
表4:浮點(diǎn)類型
-
貨幣類型
貨幣類型存儲帶有固定小數(shù)精度的貨幣金額
布爾類型
說明:“真”值的有效文本值是:TRUE陈辱、't'奖年、'true'、'y'沛贪、'yes'陋守、'1' 震贵、'TRUE'、true水评、整數(shù)范圍內(nèi)1~2^63-1猩系、整數(shù)范圍內(nèi)-1~-2^63园爷。
“假”值的有效文本值是:FALSE仲锄、'f'女气、'false'琉历、'n'、'no'鲤遥、'0'涂屁、0劝术、'FALSE'博敬、false。
使用TRUE和FALSE是比較規(guī)范的用法(也是SQL兼容的用法)峰尝。