建立書上範例資料庫— store_999
將store_schema_999.sql及 store_data_999.sql檔名中的 999改為你學號後3碼
(一)建立資料庫
create database store_999 -- 建立資料庫,只能執行一次
use database store_999 -- 使用資料庫
(二)建立(CREATE TABLE)資料表( 請開啟store_schema_999.sql )
1. 將每個資料表名稱後的_999,也改為你學號後 3 碼
2. 建立所有 table, 內容有少許錯誤,執行時如有錯,請把錯找出來修正
/* 請將下面的databas 名字062改為你的學號後3碼後按執行*/ create database bookstore_062; go use bookstore_062; go CREATE TABLE Member_062 (mId CHAR(8) NOT NULL, pId CHAR(10) NOT NULL, name VARCHAR(8) NOT NULL, birthday DATETIME, phone VARCHAR(10), address VARCHAR(40), email VARCHAR(40), introducer CHAR(8), PRIMARY KEY (mId), UNIQUE (pId), FOREIGN KEY (introducer) REFERENCES Member_062(mId)); CREATE TABLE Product_062 (pNo CHAR(6) NOT NULL, pName VARCHAR(30), unitPrice DECIMAL(10,2), catalog VARCHAR(20), PRIMARY KEY (pNo ), CONSTRAINT UnitPrice_Check CHECK (unitPrice > 100)); CREATE TABLE Author_062 (pNo CHAR(6) NOT NULL, name VARCHAR(8), PRIMARY KEY (pNo, name ), FOREIGN KEY (pNo) REFERENCES Product_062(pNo)); CREATE TABLE Transaction_062 (tNo CHAR(5) NOT NULL, transMid CHAR(8) NOT NULL, transTime DATETIME NOT NULL, method VARCHAR(5) NOT NULL, bankId VARCHAR(14) NOT NULL, bankName VARCHAR(20), cardType VARCHAR(10), cardId VARCHAR(10), dueDate DATETIME, PRIMARY KEY (tNo), FOREIGN KEY (transMid) REFERENCES Member_062(mId)); CREATE TABLE Cart_062 (mId CHAR(8) NOT NULL, cartTime DATETIME NOT NULL, tNo CHAR(5) NOT NULL, PRIMARY KEY (mId, cartTime), FOREIGN KEY (tNo) REFERENCES Transaction_062(tNo) ON UPDATE CASCADE, FOREIGN KEY (mId) REFERENCES Member_062(mId) ON DELETE CASCADE ON UPDATE CASCADE); CREATE TABLE Browse_062 (mId CHAR(8) NOT NULL DEFAULT 'a0910001', pNo CHAR(6) NOT NULL, browseTime DATETIME, PRIMARY KEY (mId, pNo, browseTime), FOREIGN KEY (mId) REFERENCES Member_062(mId) ON UPDATE CASCADE, FOREIGN KEY (pNo) REFERENCES Product_062(pNo)); CREATE TABLE Order_062 (pNo CHAR(6) NOT NULL, mId CHAR(8) NOT NULL, cartTime DATETIME NOT NULL, amount INT DEFAULT 0, PRIMARY KEY (pNo ,mId, cartTime ), FOREIGN KEY (pNo) REFERENCES Product_062(pNo), FOREIGN KEY (mId, cartTime) REFERENCES Cart_062(mId, cartTime)); CREATE TABLE Record_062 (tNo CHAR(5) NOT NULL, pNo CHAR(6) NOT NULL, salePrice DECIMAL(10,2), amount INT, PRIMARY KEY (tNo,pNo), FOREIGN KEY (tNo) REFERENCES Transaction_062(tNo), FOREIGN KEY (pNo) REFERENCES Product_062(pNo)); go
(三)新增各資料表內的記錄(請開啟store_data_999.sql)
執行所有的 insert 指令(有錯,則修改),把各資料表內記錄成功的新增進去。
/* 請將下面的databas 名字062改為你的學號後3碼後按執行*/ use bookstore_062 go Insert into MEMBER_062 (MID, PID, NAME, BIRTHDAY, PHONE, ADDRESS, EMAIL) Values ('b0922468', 'R100200300', 'Jackson', '1980-03-30', '06-3210321', '台南縣中華路號', 'jack99@ms9.hinet.net'); Insert into MEMBER_062 (MID, PID, NAME, BIRTHDAY, PHONE, ADDRESS, EMAIL) Values ('b0905555', 'C200456789', 'Jennifer', '1974-03-04', '07-2221111', '高雄市五福三路號', 'jen33@ms3.hinet.net'); Insert into MEMBER_062 (MID, PID, NAME, BIRTHDAY, PHONE, ADDRESS, EMAIL, INTRODUCER) Values ('a0910001', 'A220123456', 'Jenny', '1979-01-01', '02-2222001', '台北市中山北路號', 'jenny@ms1.hinet.net', 'b0905555'); Insert into MEMBER_062 (MID, PID, NAME, BIRTHDAY, PHONE, ADDRESS, EMAIL, INTRODUCER) Values ('c0927777', 'B123123123', 'Su', '1982-06-06', '07-2345678', '高雄市蓮海路號', 'su88@ms2.hinet.net', 'b0905555'); Insert into MEMBER_062 (MID, PID, NAME, BIRTHDAY, PHONE, ADDRESS, EMAIL, INTRODUCER) Values ('a0911234', 'A12255888', 'Tony', '1980-12-12', '02-2288009', '台北市羅斯福路號', 'tony@ms1.hinet.net', 'a0910001'); Insert into MEMBER_062 (MID, PID, NAME, BIRTHDAY, PHONE, ADDRESS, EMAIL, INTRODUCER) Values ('a0921111', 'A100062777', 'David', '1975-11-22', '04-2468888', '台中市中港路號', 'david@ms1.hinet.net', 'a0911234'); GO Insert into PRODUCT_062 (PNO, PNAME, UNITPRICE, CATALOG) Values ('b30062', '資料庫理論與實務', 500, 'Book'); Insert into PRODUCT_062 (PNO, PNAME, UNITPRICE, CATALOG) Values ('d11222', '任賢齊專輯三', 300, 'CD'); Insert into PRODUCT_062 (PNO, PNAME, UNITPRICE, CATALOG) Values ('b20666', 'OLAP進階', 500, 'Book'); Insert into PRODUCT_062 (PNO, PNAME, UNITPRICE, CATALOG) Values ('b10234', '管理資訊系統概論', 600, 'Book'); Insert into PRODUCT_062 (PNO, PNAME, UNITPRICE, CATALOG) Values ('b40555', '系統分析理論與實務', 550, 'Book'); Insert into PRODUCT_062 (PNO, PNAME, UNITPRICE, CATALOG) Values ('d20777', '蔡依林專輯二', 350, 'CD'); Insert into PRODUCT_062 (PNO, PNAME, UNITPRICE, CATALOG) Values ('v01888', '哈利波特-混血王子的背叛', 450, 'DVD'); Insert into PRODUCT_062 (PNO, PNAME, UNITPRICE, CATALOG) Values ('d03333', '5566專輯', 450, 'CD'); Insert into PRODUCT_062 (PNO, PNAME, UNITPRICE, CATALOG) Values ('b51111', '電子商務理論與實務', 700, 'Book'); Insert into PRODUCT_062 (PNO, PNAME, UNITPRICE, CATALOG) Values ('v00111', '英雄', 400, 'DVD'); GO Insert into AUTHOR_062 (PNO, NAME) Values ('b30062', 'Huang'); Insert into AUTHOR_062 (PNO, NAME) Values ('b10234', 'Lin'); Insert into AUTHOR_062 (PNO, NAME) Values ('d11222', 'William'); Insert into AUTHOR_062 (PNO, NAME) Values ('b20666', 'Sandra'); Insert into AUTHOR_062 (PNO, NAME) Values ('b40555', 'Wu'); Insert into AUTHOR_062 (PNO, NAME) Values ('d20777', 'Jolin'); Insert into AUTHOR_062 (PNO, NAME) Values ('v01888', 'J.K.'); Insert into AUTHOR_062 (PNO, NAME) Values ('b51111', 'Lai'); Insert into AUTHOR_062 (PNO, NAME) Values ('b51111', 'Huang'); Insert into AUTHOR_062 (PNO, NAME) Values ('b51111', 'Lin'); Insert into AUTHOR_062 (PNO, NAME) Values ('d03333', 'Jackey'); Insert into AUTHOR_062 (PNO, NAME) Values ('d03333', 'David'); Insert into AUTHOR_062 (PNO, NAME) Values ('d03333', 'Tom'); GO Insert into Transaction_062 (TNO, TRANSMID, TRANSTIME, METHOD, BANKID, BANKNAME, CARDTYPE, CARDID, DUEDATE) Values ('92222', 'a0911234', '2003/1/1 11:30:00', 'cart', '010', 'tb', 'visa', '987654321', '2005-01-01'); Insert into Transaction_062 (TNO, TRANSMID, TRANSTIME, METHOD, BANKID, BANKNAME, CARDTYPE, CARDID, DUEDATE) Values ('92555', 'b0922468', '2003/11/11 09:10:00', 'cart', '010', 'tb', 'visa', '333300000', '2004-01-01'); Insert into Transaction_062 (TNO, TRANSMID, TRANSTIME, METHOD, BANKID, BANKNAME, CARDTYPE, CARDID, DUEDATE) Values ('90111', 'b0905555', '2002/5/5 12:30:30', 'cart', '020', 'fb', 'master', '444455555', '2003-01-01'); Insert into Transaction_062 (TNO, TRANSMID, TRANSTIME, METHOD, BANKID, BANKNAME, CARDTYPE, CARDID, DUEDATE) Values ('92333', 'c0927777', '2003/10/15 09:00:00', 'email', '070', 'sb', 'visa', '111122222', '2004-12-31'); Insert into Transaction_062 (TNO, TRANSMID, TRANSTIME, METHOD, BANKID, BANKNAME, CARDTYPE, CARDID, DUEDATE) Values ('91888', 'a0910001', '2002/9/10 10:10:00', 'fax', '040', 'cb', 'master', '777788888', '2004-10-10'); Insert into Transaction_062 (TNO, TRANSMID, TRANSTIME, METHOD, BANKID, BANKNAME, CARDTYPE, CARDID, DUEDATE) Values ('92666', 'c0927777', '2003/10/10 22:10:30', 'cart', '020', 'fb', 'visa', '123456789', '2003-12-31'); Insert into Transaction_062 (TNO, TRANSMID, TRANSTIME, METHOD, BANKID, BANKNAME, CARDTYPE, CARDID, DUEDATE) Values ('91100', 'a0911234', '2004/7/27 18:30:00', 'cart', '010', 'tb', 'visa', '987654321', '2005-01-01'); GO Insert into CART_062 (MID, CARTTIME, TNO) Values ('a0911234', '2003/1/1 10:00:00', '92222'); Insert into CART_062 (MID, CARTTIME, TNO) Values ('a0910001', '2002/9/9 10:00:10', '91888'); Insert into CART_062 (MID, CARTTIME, TNO) Values ('b0922468', '2003/11/11 09:00:30', '92555'); Insert into CART_062 (MID, CARTTIME, TNO) Values ('a0911234', '2002/2/2 18:00:30', '91100'); Insert into CART_062 (MID, CARTTIME, TNO) Values ('b0905555', '2002/5/5 12:00:00', '90111'); Insert into CART_062 (MID, CARTTIME, TNO) Values ('c0927777', '2003/10/10 22:00:00', '92666'); GO Insert into browse_062 (MID, PNO, BROWSETIME) Values ('a0910001', 'b40555', '2002/9/9 10:00:00'); Insert into browse_062 (MID, PNO, BROWSETIME) Values ('b0922468', 'b40555', '2003/11/10 12:00:30'); Insert into browse_062 (MID, PNO, BROWSETIME) Values ('b0922468', 'b10234', '2003/11/1 22:00:00'); Insert into browse_062 (MID, PNO, BROWSETIME) Values ('c0927777', 'v00111', '2003/10/10 21:50:00'); Insert into browse_062 (MID, PNO, BROWSETIME) Values ('c0927777', 'd20777', '2003/10/10 21:40:00'); Insert into browse_062 (MID, PNO, BROWSETIME) Values ('c0927777', 'd11222', '2003/10/10 21:30:30'); Insert into browse_062 (MID, PNO, BROWSETIME) Values ('b0905555', 'v01888', '2002/5/5 11:40:30'); Insert into browse_062 (MID, PNO, BROWSETIME) Values ('a0911234', 'b20666', '2002/2/2 17:50:00'); Insert into browse_062 (MID, PNO, BROWSETIME) Values ('a0911234', 'b30062', '2002/2/2 17:30:00'); GO Insert into Order_062 (PNO, MID, CARTTIME, AMOUNT) Values ('d11222', 'a0911234', '2003/1/1 10:00:00', 1); Insert into Order_062 (PNO, MID, CARTTIME, AMOUNT) Values ('b40555', 'b0922468', '2003/11/11 09:00:30', 10); Insert into Order_062 (PNO, MID, CARTTIME, AMOUNT) Values ('b10234', 'b0922468', '2003/11/11 09:00:30', 5); Insert into Order_062 (PNO, MID, CARTTIME, AMOUNT) Values ('v00111', 'c0927777', '2003/10/10 22:00:00', 2); Insert into Order_062 (PNO, MID, CARTTIME, AMOUNT) Values ('d20777', 'c0927777', '2003/10/10 22:00:00', 1); Insert into Order_062 (PNO, MID, CARTTIME, AMOUNT) Values ('d11222', 'c0927777', '2003/10/10 22:00:00', 1); Insert into Order_062 (PNO, MID, CARTTIME, AMOUNT) Values ('v01888', 'b0905555', '2002/5/5 12:00:00', 3); Insert into Order_062 (PNO, MID, CARTTIME, AMOUNT) Values ('b30062', 'a0911234', '2002/2/2 18:00:30', 1); GO Insert into RECORD_062 (TNO, PNO, SALEPRICE, AMOUNT) Values ('91100', 'b30062', 450, 1); Insert into RECORD_062 (TNO, PNO, SALEPRICE, AMOUNT) Values ('90111', 'v01888', 1350, 3); Insert into RECORD_062 (TNO, PNO, SALEPRICE, AMOUNT) Values ('92555', 'b10234', 3000, 5); Insert into RECORD_062 (TNO, PNO, SALEPRICE, AMOUNT) Values ('92555', 'b40555', 5000, 10); Insert into RECORD_062 (TNO, PNO, SALEPRICE, AMOUNT) Values ('91888', 'b40555', 1650, 3); Insert into RECORD_062 (TNO, PNO, SALEPRICE, AMOUNT) Values ('91888', 'd03333', 850, 2); Insert into RECORD_062 (TNO, PNO, SALEPRICE, AMOUNT) Values ('92666', 'd11222', 300, 1); Insert into RECORD_062 (TNO, PNO, SALEPRICE, AMOUNT) Values ('92666', 'd20777', 350, 1); Insert into RECORD_062 (TNO, PNO, SALEPRICE, AMOUNT) Values ('92666', 'v00111', 800, 2); Insert into RECORD_062 (TNO, PNO, SALEPRICE, AMOUNT) Values ('92333', 'b51111', 700, 1); go
SELECT * FROM 資料表名稱
(四)建立一個新的查詢檔 store_select01_999,sql
1.查詢所有的table 資料
use bookstore_062 SELECT * FROM dbo.Author_062 SELECT * FROM dbo.Browse_062 SELECT * FROM dbo.Cart_062 SELECT * FROM dbo.Member_062 SELECT * FROM dbo.Order_062 SELECT * FROM dbo.Product_062 SELECT * FROM dbo.Record_062 SELECT * FROM dbo.Transaction_062
(五)繳交SQL第一個作業 --- 共 5 個檔含
store_schema_999.sql, store_data_999.sql ,store_select01_999.sql
及store_999.mdf 及 store_999.ldf
備註:備份(上傳)資料庫 --- 下次上課要用的,沒存起來,下次上課又要把前面重作一次
1. disconnet 所有的connection (關閉所有的查詢檔)
2. detach database(卸離資料庫)
3. 把store_999.mdf 及 store_999.ldf 拷貝出來,下次上課要用
沒有留言:
張貼留言