您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 第六章结构化查询语言SQL(一)
第六章結構化查詢語言SQL(一)一、選擇題1.(B)下何者對檢視表(View)的敘述是錯誤的(A)檢視表的最底層一定是資料表(B)檢視表的最底層可以是檢視表(C)檢視表也稱為虛擬資料表(D)檢視表的下一層可以是由資料表或檢視表所形成。2.(D)一般資料庫管理系統所提供的結構化查詢語言(StructuredQueryLanguage,SQL)不包括下列哪一個(A)DDL(B)DCL(C)DML(D)DLL。3.(A)下列何者是定義資料庫或資料表的語言(A)DDL(B)DCL(C)DML(D)DLL。4.(C)下列何者是對資料的新增、刪除、修改和刪除的語言(A)DDL(B)DCL(C)DML(D)DLL。5.(B)下列何者與資料庫安全相關的語言(A)DDL(B)DCL(C)DML(D)DLL。6.(A)倘若要建立兩個資料表A與B,A為父資料表,B為子資料表,則下列何者正確(A)必須先建立A再建立B(B)必須先建立B再建立A(C)沒有建立順序的限制(D)以上皆非。二、簡答題1.請說明資料表(Table)與檢視表(View)之間的差異與關係。[解答]『資料表』(Tables)是資料庫管理系統中,實際儲存資料內容的地方。『檢視表』(Views)也稱為『虛擬資料表』(VirtualTables),因為『檢視表』所呈現出來的結果和『資料表』非常類似,最大的差異在於資料表是真正儲存資料的地方,而檢視表本身並不儲存任何的資料內容,而查詢是自最下層的資料表,或是經由其他檢視表再自下層的資料表所取得的資料2.請說明預存程序(StoredProcedures)與觸發器(Triggers)之間的差異。[解答]觸發器(Triggers)和預存程序(StoredProcedures)都是一種預先設計好的處理程序,只是觸發器會相依於資料表,觸發時機也和預存程序不同。預存程序是由使用者或是透過應用程式的呼叫而被動執行;觸發器則是相依於資料表,一旦資料表被異動(新增、刪除或修改)時,就會依據不同的觸發時機,主動地觸發不同的觸發器來執行其工作。3.一般在設計資料庫時,會有哪四種的完整性限制。[解答]。(1)實體限制(EntityConstraint)(2)定義域限制(DomainConstraint)(3)參考完整性限制(ReferentialIntegrityConstraint)(4)使用者定義限制(User-DefinedConstraint)4.當刪除操作違反『參考完整性限制』時,有幾種的解決方案。[解答](1)拒絕刪除(Restrict)(2)連鎖性刪除(DeleteCascade)(3)將參考到被刪除紀錄之外來鍵值設成空值(SettoNullValue)5.請建立一綱要名稱為salesSchema,並授權給使用者hrSales。[解答]createschemasalesSchemaAuthorizationhrSales6.請依據下列之ERD建立相關資料表。[解答]createtable學生資料(學號char(8)primarykey,姓名varchar(10)notnull,系級代號varchar(6)notnull,電話varchar(20),地址varchar(60))createtable老師資料(老師代號char(8)primarykey,老師姓名varchar(10)notnull)createtable系所資料(系級代號varchar(6)primarykey,系級名稱varchar(30)notnull,系級電話varchar(20))createtable科目資料(科目代號char(4)primarykey,科目名稱varchar(50))createtable課程資料(開課系級varchar(6)references系所資料(系級代號),科目代號char(4)references科目資料(科目代號),開課老師char(8)references老師資料(老師代號),開課學分int,primarykey(開課系級,科目代號))createtable選課資料(學號char(8),開課系級varchar(6),科目代號char(4),成績intdefaultnull,primarykey(學號,開課系級,科目代號),foreignkey(學號)references學生資料(學號),foreignkey(開課系級,科目代號)references課程資料(開課系級,科目代號))以下習題請參考圖5-1範例資料庫回答7.請新增一筆產品類別,類別編號為10,類別名稱為鮮果類,並新增以下三筆產品資料。產品編號類別編號供應商編號產品名稱建議單價庫存量安全存量1510S0005蘋果汁253001501610S0005柳丁汁302502001710S0005甘蔗汁28280200[解答]insertinto產品類別(類別編號,類別名稱)values(10,‘鮮果類’)insertinto產品資料(產品編號,類別編號,供應商編號,產品名稱,建議單價,庫存量,安全存量)values(15,10,‘S0005’,‘蘋果汁’,25,300,150)insertinto產品資料(產品編號,類別編號,供應商編號,產品名稱,建議單價,庫存量,安全存量)values(16,10,‘S0005’,‘柳丁汁’,30,250,200)insertinto產品資料(產品編號,類別編號,供應商編號,產品名稱,建議單價,庫存量,安全存量)values(17,10,‘S0005’,‘甘蔗汁’,28,280,200)8.請類別編號為10的所有產品之建議單價調漲10%。[解答]update產品資料set建議單價=建議單價*1.1where類別編號=109.請將所有類別編號為10的產品類別和相關產品資料皆刪除。[解答]delete產品資料where類別編號=10delete產品類別where類別編號=1010.請查詢出所有產品資料。[解答]select*from產品資料11.請查詢出(1)庫存量小於200的產品資料,以及(2)庫存量小於安全存量的產品資料。[解答](1)select*from產品資料where庫存量200(2)select*from產品資料where庫存量安全存量12.請列出訂單資料表中的(訂單編號,客戶編號,付款方式)。[解答]select訂單編號,客戶編號,付款方式from訂單13.請列出(1)使用支票付款的訂單資料,包括(訂單編號,客戶編號,訂貨日期),以及(2)使用支票付款且利用快遞交貨的訂單資料,包括(訂單編號,客戶編號,訂貨日期)。[解答]。(1)select訂單編號,客戶編號,訂貨日期from訂單where付款方式=’支票’(2)select訂單編號,客戶編號,訂貨日期from訂單where付款方式=’支票’AND交貨方式=’快遞’14.請列出每一種產品類別有哪些產品,包括(類別名稱,產品名稱)。[解答]select類別名稱,產品名稱from產品資料,產品類別where產品資料.類別編號=產品類別.類別編號15.請列出每一位供應商所提供的產品資料,包括(供應商編號,供應商,聯絡人,產品名稱)。[解答]select供應商.供應商編號,供應商,聯絡人,產品名稱from產品資料,供應商where產品資料.供應商編號=供應商.供應商編號16.請列出在訂單明細中曾被訂購過的產品資料,包括(產品編號,產品名稱),若有重複資料僅能出現一筆,並且依據產品編號遞增排序。[解答]selectdistinct訂單明細.產品編號,產品名稱from訂單明細,產品資料where訂單明細.產品編號=產品資料.產品編號orderby訂單明細.產品編號
本文标题:第六章结构化查询语言SQL(一)
链接地址:https://www.777doc.com/doc-2160156 .html