在SQL標(biāo)準(zhǔn)中,數(shù)據(jù)庫(kù)對(duì)象都有相應(yīng)的對(duì)象描述符,描述符用于標(biāo)識(shí)該對(duì)象并記錄其相關(guān)" />
時(shí)間:2022-11-08 04:30:01 | 來(lái)源:信息時(shí)代
時(shí)間:2022-11-08 04:30:01 來(lái)源:信息時(shí)代
SQL模式語(yǔ)句 : 可能對(duì)SQL模式產(chǎn)生持久影響的語(yǔ)句,其功能包括SQL模式及SQL模式對(duì)象的定義、操縱和撤銷(xiāo)。
在SQL標(biāo)準(zhǔn)中,數(shù)據(jù)庫(kù)對(duì)象都有相應(yīng)的對(duì)象描述符,描述符用于標(biāo)識(shí)該對(duì)象并記錄其相關(guān)的描述信息。根據(jù)SQL2003第一部分“框架”的定義,SQL環(huán)境中的描述符是這樣組織的: 每個(gè)SQL環(huán)境中包含0到多個(gè)目錄,它是在一個(gè)SQL環(huán)境中的SQL模式、外部服務(wù)器描述符、外部數(shù)據(jù)封裝器描述符的命名集合;每個(gè)目錄包含一個(gè)或多個(gè)SQL模式(通常簡(jiǎn)稱(chēng)為模式),它是一個(gè)持久的、描述符的命名集合;每個(gè)模式包含0到多個(gè)對(duì)象的描述符,任何其描述符屬于某個(gè)SQL模式的對(duì)象被稱(chēng)為SQL模式對(duì)象。SQL模式對(duì)象的類(lèi)型有多種,并且隨著SQL標(biāo)準(zhǔn)版本的更新還在不斷地增加。在SQL2003第二部分“基礎(chǔ)”中,SQL模式對(duì)象的類(lèi)型包括表、視圖、域、約束、特權(quán)、字符集、排序、翻譯、用戶(hù)定義類(lèi)型、例程及序列。與之相對(duì)應(yīng)的SQL模式語(yǔ)句共有41條。SQL模式的定義和撤銷(xiāo)分別由模式定義和撤銷(xiāo)模式語(yǔ)句實(shí)現(xiàn)。模式定義語(yǔ)句創(chuàng)建一個(gè)與某授權(quán)標(biāo)識(shí)符相關(guān)聯(lián)的模式。模式、模式中的模式對(duì)象,以及由模式對(duì)象描述的SQL數(shù)據(jù)被稱(chēng)為是與該模式關(guān)聯(lián)的授權(quán)標(biāo)識(shí)符所擁有的。撤銷(xiāo)模式語(yǔ)句撤銷(xiāo)一個(gè)模式,同時(shí)撤銷(xiāo)該模式中包含的所有模式對(duì)象和所有引用了該模式的SQL調(diào)用例程,并刪除這些模式對(duì)象對(duì)應(yīng)的所有SQL數(shù)據(jù)。
除特權(quán)對(duì)象外,對(duì)于SQL模式中的其他每類(lèi)對(duì)象,SQL標(biāo)準(zhǔn)都規(guī)定了其對(duì)應(yīng)的定義和撤銷(xiāo)語(yǔ)句,對(duì)有些對(duì)象還提供了修改其部分特性的變更語(yǔ)句。這些語(yǔ)句占SQL模式語(yǔ)句的大部分,并且還有可能隨著模式對(duì)象類(lèi)型的增加而增加。這些語(yǔ)句的語(yǔ)法細(xì)節(jié)各異,可分為三類(lèi): 模式對(duì)象定義語(yǔ)句、撤銷(xiāo)模式對(duì)象語(yǔ)句和變更模式對(duì)象語(yǔ)句。
模式對(duì)象定義語(yǔ)句用于各種模式對(duì)象的定義。這類(lèi)語(yǔ)句均以保留字CREATE開(kāi)頭,對(duì)應(yīng)于要定義的不同對(duì)象類(lèi)型,其后續(xù)的語(yǔ)法各不相同。語(yǔ)句的一般格式為: “CREATE對(duì)象類(lèi)型保留字 對(duì)象名……”。其中,“對(duì)象類(lèi)型保留字”表示要?jiǎng)?chuàng)建的對(duì)象類(lèi)型,如保留字TABLE表示表,VIEW表示視圖等。如:
CREATE TABLE TAB_1(
COL_1 INT PRIMARY KEY,
COL_2 CHAR(8));
該語(yǔ)句將在當(dāng)前模式中創(chuàng)建一個(gè)表名為T(mén)AB_1,包含COL_1和COL_2兩個(gè)列,且主鍵為COL_1的基表。
模式對(duì)象定義語(yǔ)句可包含于模式定義語(yǔ)句中,也可以是一條獨(dú)立的SQL語(yǔ)句。當(dāng)它為一條獨(dú)立的SQL語(yǔ)句時(shí),其所屬模式根據(jù)相關(guān)的規(guī)則來(lái)確定。
撤銷(xiāo)模式對(duì)象語(yǔ)句用于各類(lèi)模式對(duì)象的撤銷(xiāo),該類(lèi)語(yǔ)句的執(zhí)行將導(dǎo)致模式對(duì)象及其相關(guān)的SQL數(shù)據(jù)從數(shù)據(jù)庫(kù)中刪除。語(yǔ)句以保留字DROP開(kāi)頭,其一般格式為:“DROP 對(duì)象類(lèi)型保留字 對(duì)象名……”。DROP語(yǔ)句中可指定撤銷(xiāo)行為RESTRICT或CASCADE,前者要求語(yǔ)句只能在不影響其他對(duì)象的情況下被撤銷(xiāo); 后者則會(huì)將因該對(duì)象的撤銷(xiāo)而失效的其他對(duì)象一同撤銷(xiāo)。如:
DROP TABLE TAB_1 RESTRICT;
該語(yǔ)句只能在TAB_1沒(méi)有任何真子表且不被任何其他對(duì)象引用的條件下執(zhí)行,執(zhí)行后將從當(dāng)前模式中刪除TAB 1及表中的所有數(shù)據(jù)。
變更模式對(duì)象語(yǔ)句用于變更模式對(duì)象的結(jié)構(gòu)或某些特征。語(yǔ)句以保留字ALTER開(kāi)頭,其一般格式為: “ALTER 對(duì)象類(lèi)型保留字 對(duì)象名……”。需要指出的是,對(duì)模式對(duì)象的變更是受到很多限制的,因此并非對(duì)任何模式對(duì)象的任何特征都可以進(jìn)行修改。在SQL2003第二部分“基礎(chǔ)”中,可用變更模式對(duì)象語(yǔ)句進(jìn)行修改的模式對(duì)象只有表、域、用戶(hù)定義類(lèi)型、SQL調(diào)用例程和序列發(fā)生器。如:
ALTER TABLE TAB_1
ADD COLUMN COL_3 DATE;
該語(yǔ)句在TAB_1中增加新的一列COL_3,并對(duì)表中已有的每一行按照規(guī)則計(jì)算該列的值。
特權(quán)為非命名對(duì)象,其描述符的創(chuàng)建與撤銷(xiāo)是通過(guò)權(quán)限的授予和回收的實(shí)現(xiàn)的。SQL模式語(yǔ)句中與特權(quán)描述符的操縱相關(guān)的語(yǔ)句有授予特權(quán)語(yǔ)句、回收語(yǔ)句、角色定義、授予角色語(yǔ)句和撤銷(xiāo)角色語(yǔ)句,具體內(nèi)容可參見(jiàn)SQL訪(fǎng)問(wèn)控制。
客戶(hù)&案例
營(yíng)銷(xiāo)資訊
關(guān)于我們
客戶(hù)&案例
營(yíng)銷(xiāo)資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。