結(jié)構(gòu)化查詢語言這一名稱實(shí)際上有些不貼切。
首先,盡管查詢是設(shè)計(jì)SQL的最初目的,檢索數(shù)據(jù)也仍然是其最重要的功能之一,但SQL決不僅僅是一個(gè)查詢工具。SQL用于控制DBMS提供給用戶的所有功能,包括:
數(shù)據(jù)定義(Data definition):SQL可用于定義被存放數(shù)據(jù)的結(jié)構(gòu)和組織,以及數(shù)據(jù)項(xiàng)之間的關(guān)系。
數(shù)據(jù)檢索(Data retrieval):SQL能使用戶或應(yīng)用程序從數(shù)據(jù)庫中檢索數(shù)據(jù)并使用這些數(shù)據(jù)。
數(shù)據(jù)操縱(Data manipulation):用戶或應(yīng)用程序通過SQL更改數(shù)據(jù)庫,如增加新數(shù)據(jù),刪除舊數(shù)據(jù),修改已存入的數(shù)據(jù)等。
存取控制(Access control):SQL可用來限制用戶檢索,增加和修改數(shù)據(jù)的權(quán)限,一保護(hù)所存儲(chǔ)的數(shù)據(jù)不被非法存取。
數(shù)據(jù)共享(Data sharing):SQL可用于調(diào)整數(shù)據(jù)讓并發(fā)用戶共享,以保證用戶之間彼此不受影響。
數(shù)據(jù)完整性(Data integrity):SQL能對(duì)數(shù)據(jù)庫的完整性條件作出規(guī)定,以使其不會(huì)因?yàn)樾薷奈蓙y或系統(tǒng)出錯(cuò)而被破壞。
第二,SQL并不是一種像COBOL,F(xiàn)ORTRAN和C語言等那樣完整的計(jì)算機(jī)語言。SQL沒有用于條件測試的IF語句,沒有用于程序分支的GOTO語句,也沒有用于循環(huán)的DO或FOR語句。
確切地說,SQL是一種數(shù)據(jù)庫子語言(sublanguage)。也稱為第四代語言(4GL),一種非過程語言。
SQL語言簡潔,為完成其核心功能只用了6個(gè)動(dòng)詞:SELECT、CREATE、INSERT、UPDATE、DELETE、GRANT(REVOKE)。
ANSI SQL的類型
目前的ANSI SQL標(biāo)準(zhǔn)認(rèn)可四種SQL語句的方法。采用何種方法依賴于應(yīng)用程序編程環(huán)境:
交互式SQL(Interactive SQL):類似于Forpro,以命令行形式執(zhí)行SQL語句。
嵌入式SQL(Embedded SQL):通過在SQL語句前假如一個(gè)關(guān)鍵字來執(zhí)行SQL語句。例如C中的EXEC SQL。
模塊SQL(Module SQL):允許創(chuàng)建獨(dú)立于3GL源代碼的編譯SQL語句,然后把編譯好的目標(biāo)模塊連入可執(zhí)行程序。SQL模塊類似于Visual Basic代碼模塊,模塊中包含變量說明和用來容納查詢結(jié)果集合的臨時(shí)表,可以把變?cè)祻?GL傳遞給SQL模塊說明的過程參數(shù)。在數(shù)據(jù)庫服務(wù)器上執(zhí)行預(yù)編譯查詢的存儲(chǔ)過程有許多與模塊SQL共同的性質(zhì)。
動(dòng)態(tài)SQL(Dynamic SQL):可以創(chuàng)建在編寫語句時(shí)無法預(yù)測其內(nèi)容的SQL語句(前面的多種SQL類型屬于靜態(tài)SQL類)。例如:讀者想設(shè)計(jì)一個(gè)可以針對(duì)多種數(shù)據(jù)庫處理查詢的Visual Basic應(yīng)用程序。動(dòng)態(tài)SQL可以以字符串形式向數(shù)據(jù)庫傳送查詢。例如,可以向數(shù)據(jù)庫傳送一個(gè)查詢并獲得詳細(xì)的信息,這些信息來自描述數(shù)據(jù)庫表及表中字段的數(shù)據(jù)庫字典。在知道了數(shù)據(jù)庫結(jié)構(gòu)之后,應(yīng)用程序用戶可以創(chuàng)建向查詢添加正確字段名的定制查詢。
SQL的作用
SQL本身不是一個(gè)數(shù)據(jù)庫管理系統(tǒng),也不是獨(dú)立的產(chǎn)品。事實(shí)上,SQL是數(shù)據(jù)庫管理系統(tǒng)的一個(gè)組成部分,是用戶和DBMS通信的語言和工具。
SQL有下列作用:
SQL是一種交互式查詢語言
SQL是一種數(shù)據(jù)庫編程語言
SQL是一種數(shù)據(jù)庫管理語言
SQL是一種客戶機(jī)/服務(wù)器語言
SQL是一種分布式數(shù)據(jù)庫語言
SQL是一種數(shù)據(jù)庫網(wǎng)關(guān)語言
首先,盡管查詢是設(shè)計(jì)SQL的最初目的,檢索數(shù)據(jù)也仍然是其最重要的功能之一,但SQL決不僅僅是一個(gè)查詢工具。SQL用于控制DBMS提供給用戶的所有功能,包括:
數(shù)據(jù)定義(Data definition):SQL可用于定義被存放數(shù)據(jù)的結(jié)構(gòu)和組織,以及數(shù)據(jù)項(xiàng)之間的關(guān)系。
數(shù)據(jù)檢索(Data retrieval):SQL能使用戶或應(yīng)用程序從數(shù)據(jù)庫中檢索數(shù)據(jù)并使用這些數(shù)據(jù)。
數(shù)據(jù)操縱(Data manipulation):用戶或應(yīng)用程序通過SQL更改數(shù)據(jù)庫,如增加新數(shù)據(jù),刪除舊數(shù)據(jù),修改已存入的數(shù)據(jù)等。
存取控制(Access control):SQL可用來限制用戶檢索,增加和修改數(shù)據(jù)的權(quán)限,一保護(hù)所存儲(chǔ)的數(shù)據(jù)不被非法存取。
數(shù)據(jù)共享(Data sharing):SQL可用于調(diào)整數(shù)據(jù)讓并發(fā)用戶共享,以保證用戶之間彼此不受影響。
數(shù)據(jù)完整性(Data integrity):SQL能對(duì)數(shù)據(jù)庫的完整性條件作出規(guī)定,以使其不會(huì)因?yàn)樾薷奈蓙y或系統(tǒng)出錯(cuò)而被破壞。
第二,SQL并不是一種像COBOL,F(xiàn)ORTRAN和C語言等那樣完整的計(jì)算機(jī)語言。SQL沒有用于條件測試的IF語句,沒有用于程序分支的GOTO語句,也沒有用于循環(huán)的DO或FOR語句。
確切地說,SQL是一種數(shù)據(jù)庫子語言(sublanguage)。也稱為第四代語言(4GL),一種非過程語言。
SQL語言簡潔,為完成其核心功能只用了6個(gè)動(dòng)詞:SELECT、CREATE、INSERT、UPDATE、DELETE、GRANT(REVOKE)。
ANSI SQL的類型
目前的ANSI SQL標(biāo)準(zhǔn)認(rèn)可四種SQL語句的方法。采用何種方法依賴于應(yīng)用程序編程環(huán)境:
交互式SQL(Interactive SQL):類似于Forpro,以命令行形式執(zhí)行SQL語句。
嵌入式SQL(Embedded SQL):通過在SQL語句前假如一個(gè)關(guān)鍵字來執(zhí)行SQL語句。例如C中的EXEC SQL。
模塊SQL(Module SQL):允許創(chuàng)建獨(dú)立于3GL源代碼的編譯SQL語句,然后把編譯好的目標(biāo)模塊連入可執(zhí)行程序。SQL模塊類似于Visual Basic代碼模塊,模塊中包含變量說明和用來容納查詢結(jié)果集合的臨時(shí)表,可以把變?cè)祻?GL傳遞給SQL模塊說明的過程參數(shù)。在數(shù)據(jù)庫服務(wù)器上執(zhí)行預(yù)編譯查詢的存儲(chǔ)過程有許多與模塊SQL共同的性質(zhì)。
動(dòng)態(tài)SQL(Dynamic SQL):可以創(chuàng)建在編寫語句時(shí)無法預(yù)測其內(nèi)容的SQL語句(前面的多種SQL類型屬于靜態(tài)SQL類)。例如:讀者想設(shè)計(jì)一個(gè)可以針對(duì)多種數(shù)據(jù)庫處理查詢的Visual Basic應(yīng)用程序。動(dòng)態(tài)SQL可以以字符串形式向數(shù)據(jù)庫傳送查詢。例如,可以向數(shù)據(jù)庫傳送一個(gè)查詢并獲得詳細(xì)的信息,這些信息來自描述數(shù)據(jù)庫表及表中字段的數(shù)據(jù)庫字典。在知道了數(shù)據(jù)庫結(jié)構(gòu)之后,應(yīng)用程序用戶可以創(chuàng)建向查詢添加正確字段名的定制查詢。
SQL的作用
SQL本身不是一個(gè)數(shù)據(jù)庫管理系統(tǒng),也不是獨(dú)立的產(chǎn)品。事實(shí)上,SQL是數(shù)據(jù)庫管理系統(tǒng)的一個(gè)組成部分,是用戶和DBMS通信的語言和工具。
SQL有下列作用:
SQL是一種交互式查詢語言
SQL是一種數(shù)據(jù)庫編程語言
SQL是一種數(shù)據(jù)庫管理語言
SQL是一種客戶機(jī)/服務(wù)器語言
SQL是一種分布式數(shù)據(jù)庫語言
SQL是一種數(shù)據(jù)庫網(wǎng)關(guān)語言