資源簡介
實驗一:創建表、更新表和實施數據完整性
1. 運行給定的SQL Script,建立數據庫GlobalToyz。
2. 創建所有表的關系圖。
3. 列出所有表中出現的約束(包括Primary key, Foreign key, check constraint, default, unique)
4. 對Recipient表和Country表中的cCountryId屬性定義一個用戶自定義數據類型,并將該屬性的類型定義為這個自定義數據類型。
5. 把價格在$20以上的所有玩具的材料拷貝到稱為PremiumToys的新表中。
6. 對表Toys實施下面數據完整性規則:(1)玩具的現有數量應在0到200之間;(2)玩具適宜的最低年齡缺省為1。
7. 不修改已創建的Toys表,利用規則實現以下數據完整性:(1)玩具的價格應大于0;(2)玩具的重量應缺省為1。
8. 給id為‘000001’玩具的價格增加$1。
實驗二:查詢數據庫
1. 顯示屬于California和Illinoi州的顧客的名、姓和emailID。
2. 顯示定單號碼、商店ID,定單的總價值,并以定單的總價值的升序排列。
3. 顯示在orderDetail表中vMessage為空值的行。
4. 顯示玩具名字中有“Racer”字樣的所有玩具的材料。
5. 根據2000年的玩具銷售總數,顯示“Pick of the Month”玩具的前五名玩具的ID。
6. 根據OrderDetail表,顯示玩具總價值大于¥50的定單的號碼和玩具總價值。
7. 顯示一份包含所有裝運信息的報表,包括:Order Number, Shipment Date, Actual Delivery Date, Days in Transit. (提示:Days in Transit = Actual Delivery Date – Shipment Date)
8. 顯示所有玩具的名稱、商標和種類(Toy Name, Brand, Category)。
9. 顯示玩具的名稱和所有玩具的購物車ID。如果玩具不在購物車中,則顯示NULL值。
10. 以下列格式顯示所有購物者的名字和他們的簡稱:(Initials, vFirstName, vLastName),例如Angela Smith的Initials為A.S。
11. 顯示所有玩具的平均價格,并舍入到整數。
12. 顯示所有購買者和收貨人的名、姓、地址和所在城市。
13. 顯示沒有包裝的所有玩具的名稱。(要求用子查詢實現)
14. 顯示已發貨定單的定單號碼以及下定單的時間。(要求用子查詢實現)
實驗三:視圖與觸發器
1. 定義一個視圖,包括購買者的姓名、所在州和他們所訂購玩具的名稱、價格和數量。
2. 基于(1)中定義的視圖,查詢顯示所有California州的購買者的姓名和他們所訂購玩具的名稱及數量。
3. 視圖定義如下:
CREATE VIEW vwOrderWrapper
AS
SELECT cOrderNo, cToyId, siQty, vDescription, mWrapperRate
FROM OrderDetail JOIN Wrapper
ON OrderDetail.cWrapperId = Wrapper.cWrapperId
以下更新命令,在更新siQty和mWrapperRate屬性使用了以下更新命令時出現錯誤:
UPDATE vwOrderWrapper
SET siQty = 2, mWrapperRate = mWrapperRate + 1
FROM vwOrderWrapper
WHERE cOrderNo = ‘000001’
修改更新命令,以更新基表中的值。
4. 在OrderDetail上定義一個觸發器,如果購物者改變了定單的數量,玩具的成本也自動地改變。(提示:Toy cost = Quantity * Toy Rate)
實驗四:存儲過程
1. 編寫一段程序,將每種玩具的價格提高¥0.5,直到玩具的平均價格接近$24.5為止。此外,任何玩具的最大價格不應超過$53。
2. 創建一個稱為prcCharges的存儲過程,它返回某個定單號的裝運費用和包裝費用。
3. 創建一個稱為prcHandlingCharges的過程,它接收定單號并顯示經營費用。PrchandlingCharges過程應使用prcCharges過程來得到裝運費和禮品包裝費。
提示:經營費用=裝運費+禮品包裝費
實驗五:事務與游標
1. 名為prcGenOrder的存儲過程產生存在于數據庫中的定單號:
CREATE
代碼片段和文件信息
評論
共有 條評論