閱讀下列說明,回答問題1至問題4,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某論壇的部分關(guān)系模式如下:
用戶(用戶編號,帳號,密碼,積分,級別)
欄目(欄目編號,父欄目編號,名稱,版主,描述)
主題(主題編號,標(biāo)題,類型,點(diǎn)擊率,內(nèi)容,發(fā)布時間,欄目編號,用戶編號,附件)
回復(fù)主題(回復(fù)主題編號,標(biāo)題,主題編號,內(nèi)容,發(fā)布時間,用戶編號,附件)
其中:
(1)用戶編號唯一標(biāo)識一個用戶。用戶的積分根據(jù)其發(fā)布的主題信息按積分規(guī)則計算。級別的值來自集合{‘高級用戶’, 普通用戶’, ‘初級用戶’},當(dāng)用戶開始注冊時,積分為100,級別為初級用戶;當(dāng)用戶積分到達(dá)1000時,級別為普通用戶;當(dāng)用戶積分到達(dá)5000時,級別為高級用戶。
(2)欄目編號唯一標(biāo)識一個欄目。欄目分兩級,包括父欄目和子欄目。每個欄目必須有且僅有一個版主,版主是一個用戶。
(3)主題編號唯一標(biāo)識一個主題。類型的值來自集合{ ‘精華’, ‘置頂’, ‘普通’}。
(4)回復(fù)主題編號唯一識別一個回復(fù)主題。一個回復(fù)主題對應(yīng)一個主題,而一個主題可以有多個回復(fù)主題。
【問題1】
請將下列SQL語句的空缺部分補(bǔ)充完整。
(1)假設(shè)已經(jīng)創(chuàng)建好用戶關(guān)系,現(xiàn)在想增加一個屬性“個性簽名” ,類型為VARCHAR(60),請給出相關(guān)的SQL語句。
(a) ;
(2)假設(shè)已經(jīng)創(chuàng)建好用戶關(guān)系,下面是創(chuàng)建欄目關(guān)系的SQL語句,請將空缺部分補(bǔ)充完整。
CREATE TABLE 欄目(
欄目編號 VARCHAR(8) PRIMARY KEY,
父欄目編號 VARCHAR(8),
名稱 VARCHAR(40),
版主 VARCHAR(8) NOT NULL,
描述 VARCHAR(100),
(b) ,
(c) );
【問題2】
請將下列SQL語句的空缺部分補(bǔ)充完整。
(1)查詢標(biāo)題或內(nèi)容包含“SQL”的主題標(biāo)題,按發(fā)布時間降序排序。
SELECT DISTINCT 標(biāo)題
FROM 主題
(d)
(e) ;
(2)查找名稱為“數(shù)據(jù)庫技術(shù)”的欄目及其子欄目中的精華主題的標(biāo)題和點(diǎn)擊率。
SELECT 標(biāo)題,點(diǎn)擊率
FROM 主題
WHERE 類型= ‘ 精華’
AND 欄目編號 (f) (SELECT 欄目編號
FROM 欄目
WHERE 名稱= ‘?dāng)?shù)據(jù)庫技術(shù)’
(q)
SELECT 欄目編號
FROM 欄目
WHERE (h) (SELECT 欄目編號
FROM 欄目
WHERE 名稱=‘ 數(shù)據(jù)庫技術(shù)’ ));
【問題3】
假設(shè)所有關(guān)系模式已創(chuàng)建,回復(fù)主題關(guān)系模式的“主題編號”是外鍵,參照主題關(guān)系模式的“主題編號” 。現(xiàn)在要刪除編號為“T005”的主題及其相關(guān)的回復(fù)主題,下面是對應(yīng)的刪除語句,這些語句組成一個事務(wù)。
DELETE 主題 WHERE 主題編號 = ‘T005 ’;
DELETE 回復(fù)主題 WHERE 主題編號= ‘T005’;
(1)請問這些刪除語句能否完成功能?若不能,請說明為什么?(100字以內(nèi))
(i)
(2)假設(shè)現(xiàn)在希望僅通過“DELETE 主題 WHERE 主題編號 = ‘ T005’ ;”這一條語句就能完成此刪除功能,應(yīng)如何實(shí)現(xiàn)? (100字以內(nèi))
(j)
【問題4】
為了了解每個欄目用戶關(guān)注的主題,對原創(chuàng)主題創(chuàng)建視圖主題_view,屬性包括主題編號、標(biāo)題、用戶帳號、欄目名稱、回復(fù)數(shù)、點(diǎn)擊率和發(fā)布時間。
CREATE VIEW 主題_view (主題編號,標(biāo)題,用戶帳號,欄目名稱,回復(fù)數(shù),點(diǎn)擊率,發(fā)布時間) AS SELECT 主題.主題編號,標(biāo)題,帳號,名稱,回復(fù)數(shù),點(diǎn)擊率,發(fā)布時間
FROM 主題,用戶,欄目, ( (k)
FROM 回復(fù)主題
(l) ) AS A
WHERE 主題.用戶編號=用戶.用戶編號 AND 主題.欄目編號=欄目.欄目編號 AND (m) ;