三級數(shù)據(jù)庫第六章考試要點

字號:

第六章
    一、SQL概述(一)結(jié)構(gòu)化查詢語言SQL
    SQL(Structured Query Language)稱為結(jié)構(gòu)化查詢語言。由于SQL使用方便、功能豐富、語言簡潔易學(xué),很快得到推廣和應(yīng)用。例如關(guān)系數(shù)據(jù)庫產(chǎn)品SQL/DS,DB2,Oracle,SYBASE等都實現(xiàn)了SQL語言。自SQL成為國際標(biāo)準(zhǔn)語言以后,各個數(shù)據(jù)庫廠家紛紛推出各自支持的SQL軟件或SQL接口的軟件。這就有可能使大多數(shù)數(shù)據(jù)庫均用SQL作為共同的數(shù)據(jù)庫語言和標(biāo)準(zhǔn)接口,使不同數(shù)據(jù)庫系統(tǒng)之間的互操作有了共同的基礎(chǔ)。而且對數(shù)據(jù)庫以外的領(lǐng)域也產(chǎn)生了很大影響,有不少軟件產(chǎn)品將SQL語言的數(shù)據(jù)查詢功能與圖形功能、軟件工程工具、軟件開發(fā)工具、人工智能程序結(jié)合起來。SQL已成為關(guān)系數(shù)據(jù)庫領(lǐng)域中一個主流語言。
    (二)SQL的特點
    其主要特點包括:
    (1)綜合統(tǒng)一
    (2)高度非過程化
    (3)面向集合的操作方式
    (4)以同一種語法結(jié)構(gòu)提供兩種使用方式
    (5)語言簡潔,易學(xué)易用
    (三)SQL數(shù)據(jù)庫的體系結(jié)構(gòu)
    SQL語言支持?jǐn)?shù)據(jù)庫三級模式結(jié)構(gòu),在SQL中,模式對應(yīng)于“基本表(base table)”,內(nèi)模式對應(yīng)于“存儲文件”,外模式對應(yīng)于“視圖(view)”和部分基本表。元組對應(yīng)于表中的“行(row)”,屬性對應(yīng)于表中的
    “列(column)”。
    (1)一個SQL數(shù)據(jù)庫是表(table)的匯集。
    (2)一個SQL表由行集構(gòu)成,一行是列的序列,每列對應(yīng)一個數(shù)據(jù)項。
    (3)一個表可以帶若干索引,索引也存放在存儲文件中。
    (4)存儲文件的邏輯結(jié)構(gòu)組成了關(guān)系數(shù)據(jù)庫的內(nèi)模式。存儲文件的物理結(jié)構(gòu)是任意的,對用戶是透明的。
    (5)一個表或者是一個基本表,或者是一個視圖。
    (6)一個基本表可以跨一個或多個存儲文件存放,一個存儲文件可以存放一個或多個基本表。每個存儲文件與外部存儲器上一個物理文件對應(yīng)。
    (7)SQL用戶可以是應(yīng)用程序,也可以是終端用戶。SQL的宿主語言有FORTARAN,COBOL,Pascal,PL/I、C和Ada語言等。SQL也能作為獨立的用戶接口,供交互環(huán)境下的終端用戶使用。
    二、SQL的數(shù)據(jù)定義
    關(guān)系數(shù)據(jù)庫是由模式、外模式和內(nèi)模式組成,即關(guān)系數(shù)據(jù)庫的基本對象是表、視圖和索引。因此,SQL的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引,由于視圖是基于基本表的虛表,索引是依附于基本表的,因此SQL通常不提供修改視圖定義和修改索引定義的操作。用戶如果想修改視圖定義或索引定義,只能先將它們刪除掉,然后再重建。
    (一)基本表
    1.創(chuàng)建基本表
    SQL語言使用CREATE TABLE語句創(chuàng)建基本表,其一般格式如下:CREATE TABLE〈表名〉(〈列名〉〈數(shù)據(jù)類型〉[列級完整性約束] [,〈列名〉〈數(shù)據(jù)類型〉[列級完整性約束]…] [,〈表級完整性約束〉] [其他參數(shù)]);
    2.修改基本表
    隨著應(yīng)用環(huán)境和應(yīng)用需求的變化,有時需要修改已建立好的基本表,包括增加新列、增加新的完整性約束條件、修改原有的定義或刪除已有的完整性約束條件等。SQL語言用ALTER TABLE語句修改基本表,其一般格式為:ALTER TABLE〈表名〉 [ADD〈新列名〉〈數(shù)據(jù)類型〉[完整性約束]] [DROP〈完整性約束名〉] [MODIFY〈列名〉〈數(shù)據(jù)類型〉];其中,〈表名〉為指定需要修改的基本表名,ADD子句用于增加新列和新的完整性約束,DROP子句用于刪除指定的完整性約束,MODIFY子句用于修改原有的列定義。
    3.刪除基本表
    當(dāng)某個基本表不再需要時,可以使用SQL語句DROP TABLE進(jìn)行刪除,其一般格式為: DROP TABLE〈表名〉;
    (二)索引
    1.創(chuàng)建索引
    在SQL語言中,創(chuàng)建索引使用CREATE INDEX語句,其一般格式為:CREATE[UNIQUE][CLUSTER]INDEX〈索引名〉 ON〈表名〉(〈列名〉[順序][,〈列名〉[順序]]…);
    2.刪除索引
    索引一經(jīng)建立,就由系統(tǒng)使用和維護(hù)它,不需用戶干預(yù)。創(chuàng)建索引是為了減少查詢操作的時間,但如果數(shù)據(jù)增、刪頻繁,系統(tǒng)會花費許多時間來維護(hù)索引。這時,可以刪除一些不必要的索引。在SQL語言中,刪除索引使用DROP INDEX語句,其一般格式為: DROP INDEX〈索引名〉;
    三、SQL的數(shù)據(jù)操縱(一)SQL的查詢語句
    數(shù)據(jù)庫查詢是數(shù)據(jù)庫操作的核心。SQL語言提供了SELECT語句進(jìn)行數(shù)據(jù)庫的查詢,該語句的一般格式是:SELECT [ALL|DISTINCT]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]… FROM〈基本表(或視圖)〉[,〈基本表(或視圖)〉]… [WHERE<條件表達(dá)式>] [GROUP BY<列名1>[HAVING<內(nèi)部函數(shù)表達(dá)式>]] [ORDER BY<列名2>[ASC|DESC]];
    1.簡單查詢
    簡單查詢僅涉及數(shù)據(jù)庫中的一個表。
    (1)查詢表中的若干列。
    (2)查詢經(jīng)過計算的值。
    (3)消除取值重復(fù)的行。
    (4)條件查詢。通過WHERE子句實現(xiàn)條件查詢,WHERE子句常用的查詢條件如下表所示。