OceanBase SQL概述

2021-06-11 17:32 更新

結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)簡(jiǎn)稱 SQL,是一種有特殊目的的編程語(yǔ)言。和當(dāng)下流行的其他關(guān)系數(shù)據(jù)庫(kù)一樣,所有程序和用戶都可以使用 SQL 來(lái)訪問(wèn) OceanBase 數(shù)據(jù)庫(kù)中的數(shù)據(jù)。即便有一些平臺(tái)、工具允許用戶直接通過(guò)接口或界面的方式訪問(wèn)數(shù)據(jù)庫(kù),但這些平臺(tái)、工具底層實(shí)際上依舊是使用 SQL 來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。

SQL 的歷史

1970 年 6 月,IBM 公司 San Jose,California 實(shí)驗(yàn)室的 E. F. Codd 博士在 ACM(Association for Computing Machinery)期刊上發(fā)表了論文《大型共享數(shù)據(jù)銀行的關(guān)系模型》(A Relational Model of Data for Large Shared Data Banks)并首次提出了關(guān)系模型的概念。

1974 年,同實(shí)驗(yàn)室的 D.D.Chamberlin 和 R.F.Boyce 在 IBM 公司研制的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng) SystemR 中,研制出了一套規(guī)范語(yǔ)言 SEQUEL(Structured English QUEry Language),并在 1976 年 11 月的 IBM Journal of R&D 上公布了新版本的 SQL(稱為 SEQUEL/2,1980年改名為 SQL)。

1979 年,Oracle 公司首先提供商用的 SQL,同時(shí) IBM 公司在 DB2 和 SQL/DS 數(shù)據(jù)庫(kù)系統(tǒng)中也實(shí)現(xiàn)了 SQL。

時(shí)至今日,SQL 已經(jīng)成為了關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(Relational Database Management System:RDBMS)的標(biāo)準(zhǔn)語(yǔ)言。

SQL 的標(biāo)準(zhǔn)

1986 年 10 月,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì) ANSI 采用 SQL 作為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言,并命名為 ANSI X3. 135-1986,后來(lái)國(guó)際標(biāo)準(zhǔn)化組織(ISO)也采納 SQL 作為國(guó)際標(biāo)準(zhǔn)。

1989 年,ANSI 采納并使用了在 ANSI X3.135-1989 報(bào)告中定義的 SQL 標(biāo)準(zhǔn)語(yǔ)言,并稱之為 ANSI SQL 89,該標(biāo)準(zhǔn)替代了之前的 ANSI X3.135-1986 版本。

下面是 SQL 發(fā)展的簡(jiǎn)要?dú)v史:

  • 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。
  • 2008年,ISO/IEC 9075:2008,SQL:2008。
  • 2011年,ISO/IEC 9075:2011,SQL:2011。

現(xiàn)在,絕大多數(shù)被提及的 SQL 標(biāo)準(zhǔn),其中涉及的內(nèi)容其實(shí)都是 SQL 92 里最基本、最核心的一部分。OceanBase 目前也遵循的是 SQL 92 標(biāo)準(zhǔn)。

SQL 的運(yùn)行

SQL 是用來(lái)訪問(wèn)關(guān)系數(shù)據(jù)庫(kù),如 OceanBase、Oracle 和 MySQL 的接口,所有的 SQL 語(yǔ)句都是對(duì)數(shù)據(jù)庫(kù)的指令。

通常,SQL 可以分為 5 個(gè)部分:

  1. 數(shù)據(jù)查詢語(yǔ)言 DQL(Data Query Language):也稱為數(shù)據(jù)檢索語(yǔ)言,用以從表中獲得數(shù)據(jù),并描述怎樣將數(shù)據(jù)返回給程序輸出。DQL 并不改變數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)內(nèi)容。
  2. 數(shù)據(jù)操作語(yǔ)言 DML(Data Manipulation Language):用以改變數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)內(nèi)容,即增加、修改和刪除數(shù)據(jù)。
  3. 事務(wù)控制語(yǔ)言 TCL(Transaction Control Language):保證數(shù)據(jù)庫(kù)的完整性、一致性,在同一個(gè)事務(wù)中的 DML 語(yǔ)句要么同時(shí)成功,要么同時(shí)失敗。
  4. 數(shù)據(jù)控制語(yǔ)句 DCL(Data Control Language):對(duì)數(shù)據(jù)訪問(wèn)權(quán)限控制的命令。可以控制特定賬號(hào)對(duì)特定數(shù)據(jù)庫(kù)資源的訪問(wèn)權(quán)限。
  5. 數(shù)據(jù)定義語(yǔ)言 DDL(Data Definition Language):對(duì)數(shù)據(jù)庫(kù)中資源進(jìn)行定義、修改和刪除,如新建表和刪除表等。

SQL 的移植性

SQL 是訪問(wèn)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言,所有的主要關(guān)系數(shù)據(jù)庫(kù)都支持 SQL,因此所有用 SQL 編寫(xiě)的程序都是可移植的。通常進(jìn)行少量的修改就可以從一個(gè)關(guān)系數(shù)據(jù)庫(kù)移植到另一個(gè)關(guān)系數(shù)據(jù)庫(kù)上。

詞匯慣例

  • 粗體 表示與操作或以文本或詞匯表定義的術(shù)語(yǔ)相關(guān)聯(lián)的圖形用戶界面元素。
  • 保留字、關(guān)鍵字、標(biāo)識(shí)符和參數(shù)中的大小寫(xiě)不敏感。為方便閱讀與識(shí)別,這些字會(huì)以大寫(xiě)形式書(shū)寫(xiě)。
  • 在不同的編程環(huán)境中,SQL 語(yǔ)句終止方式不同。本文檔中以分號(hào) “;” 來(lái)標(biāo)識(shí)一個(gè) SQL 的結(jié)尾。
  • 行內(nèi)代碼 表示文檔中引用的代碼。
  • 為了突出重要信息,本文檔會(huì)加粗“說(shuō)明”、“注意”和“重要”等文字。
  • 本文檔中可選參數(shù)文本用方括號(hào)括起,如 [-n, -quiet]。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)