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