版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、u ANSWERS TO JAMES RIVER JEWELRY PROJECT QUESTIONS数据库JAMES_RIVER_JEWELRY.包括下述4张表:CUSTOMER (CustomerID, LastName, FirstName, Phone, Email)PURCHASE (InvoiceNumber, Date, PreTaxAmount, CustomerID)PURCHASE_ITEM (InvoiceNumber, ItemNumber, RetailPrice)ITEM (ItemNumber, Description, Cost, ArtistName)其中参照完
2、整性约束如下:CustomerID in PURCHASE must exist in CustomerID in CUSTOMERInvoiceNumber in PURCHASE_ITEM must exist in InvoiceNumber in PURCHASEItemNumber in PURCHASE_ITEM must exist in ItemNumber in ITEM假设 CustomerID of CUSTOMER, ItemNumber of ITEM, InvoiceNumber of PURCHASE, and ItemNumber of PURCHASE_ITE
3、M 都是代理键,具有如下值:CustomerID Start at 1 Increment by 1ItemNumber Start at 1 Increment by 1InvoiceNumber Start at 1 Increment by 1ItemNumber Start at 1 Increment by 1部分数据如P87 图2-30所示。上面的数据并不完整,我们将在后面练习过程中增加数据,后面的练习使用SQLSERVER 2008,数据库命名为 JAMES_RIVER_JEWELRY.。A 用CREATE TABLE语句创建上述4个表,不包含参照完整性约束.For SQL Se
4、rver 2008: CREATE TABLE CUSTOMER(CustomerIDIntNOT NULL IDENTITY(1, 1),LastNameChar(35)NOT NULL,FirstNameChar(25)NOT NULL,PhoneChar(12)NULL,EmailVarChar(100)NULL,CONSTRAINTCUSTOMER_PKPRIMARY KEY(CustomerID);CREATE TABLE ITEM(ItemNumberIntNOT NULL IDENTITY(1,1),DescriptionVarChar(255)NOT NULL,CostNume
5、ric(9,2)NOT NULL,ArtistNameChar(50)NULL,CONSTRAINTITEM_PKPRIMARY KEY(ItemNumber);CREATE TABLE PURCHASE (InvoiceNumberIntNOT NULL IDENTITY (1,1),DateDateTimeNOT NULL,PreTaxAmountNumeric(9,2)NOT NULL,CustomerIDIntNOT NULL,CONSTRAINTPURCHASE_PKPRIMARY KEY(InvoiceNumber); Date用方括号是由于Date在SQLSERVER是关键字,不
6、用括号也能正常运行。CREATE TABLE PURCHASE_ITEM (InvoiceNumberIntNOT NULL,ItemNumberIntNOT NULL,RetailPriceNumeric(9,2)NOT NULL,CONSTRAINT PURCHASE_ITEM_PKPRIMARY KEY (InvoiceNumber, ItemNumber);B 添加参照完整性约束For SQL Server 2008: ALTER TABLE PURCHASEADD CONSTRAINT PURCHASE_CUSTOMER_FKFOREIGN KEY (CustomerID) REFE
7、RENCES CUSTOMER(CustomerID)ON DELETE NO ACTION;CustomerID没有级联删除是因为我们不希望再删除客户信息时删除其订单记录。ALTER TABLE PURCHASE_ITEMADD CONSTRAINT PURCHASE_ITEM_PURCHASE_FKFOREIGN KEY (InvoiceNumber) REFERENCES PURCHASE(InvoiceNumber)ON DELETE CASCADE;当订单被删除时,该订单包含的订单项也应被删除。ALTER TABLE PURCHASE_ITEMADD CONSTRAINT PURCH
8、ASE_ITEM_ITEM_FKFOREIGN KEY (ItemNumber) REFERENCES ITEM(ItemNumber)ON DELETE NO ACTION;当某个商品被删除时,以前订单中该项商品的交易记录不应删除。对于上述三个约束均未设置级联更新的原因是因为他们都是代理键。在创建表的同时创建参照完整性约束的SQL语句:CREATE TABLE PURCHASE(InvoiceNumberIntNOT NULL IDENTITY (1,1),DateDateTimeNOT NULL,PreTaxAmountNumeric(9,2)NOT NULL,CustomerIDIntN
9、OT NULL,CONSTRAINTPURCHASE_PKPRIMARY KEY(InvoiceNumber),CONSTRAINT PURCHASE_CUSTOMER_FK FOREIGN KEY (CustomerID)REFERENCES CUSTOMER(CustomerID)ON DELETE NO ACTION);CREATE TABLE PURCHASE_ITEM (InvoiceNumberIntNOT NULL,ItemNumberIntNOT NULL,RetailPriceNumeric(9,2)NOT NULL,CONSTRAINT PURCHASE_ITEM_PKPR
10、IMARY KEY (InvoiceNumber, ItemNumber),CONSTRAINTPURCHASE_ITEM_PURCHASE_FKFOREIGN KEY (InvoiceNumber)REFERENCES PURCHASE(InvoiceNumber)ON DELETE CASCADE,CONSTRAINTPURCHASE_ITEM_ITEM_FK FOREIGN KEY (ItemNumber)REFERENCES ITEM(ItemNumber)ON DELETE NO ACTION);For Access:CREATE TABLE CUSTOMER(CustomerIDI
11、ntNOT NULL,LastNameChar(35)NOT NULL,FirstNameChar(25)NOT NULL,PhoneChar(12)NULL,EmailVarChar(100)NULL,CONSTRAINTCUSTOMER_PKPRIMARY KEY(CustomerID);CREATE TABLE ITEM(ItemNumberIntNOT NULL,DescriptionVarChar(255)NOT NULL,CostNumericNOT NULL,ArtistNameChar(50)NULL,CONSTRAINTITEM_PKPRIMARY KEY(ItemNumbe
12、r);CREATE TABLE PURCHASE(InvoiceNumberIntNOT NULL,PurchaseDateDateTimeNOT NULL,PreTaxAmountNumericNOT NULL,CustomerIDIntNOT NULL,CONSTRAINTPURCHASE_PKPRIMARY KEY(InvoiceNumber),CONSTRAINT PURCHASE_CUSTOMER_FK FOREIGN KEY (CustomerID)REFERENCES CUSTOMER(CustomerID);CREATE TABLE PURCHASE_ITEM (Invoice
13、NumberIntNOT NULL,ItemNumberIntNOT NULL,RetailPriceNumericNOT NULL,CONSTRAINT PURCHASE_ITEM_PKPRIMARY KEY (InvoiceNumber, ItemNumber),CONSTRAINTPURCHASE_ITEM_PURCHASE_FKFOREIGN KEY (InvoiceNumber)REFERENCES PURCHASE(InvoiceNumber),CONSTRAINTPURCHASE_ITEM_ITEM_FK FOREIGN KEY (ItemNumber)REFERENCES IT
14、EM(ItemNumber);C 使用SQL语句在表中添加数据,数据如图2-30.由于存在中参照完整性约束,因此对上述表进行数据插入应按照如下顺序:CUSTOMERNo foreign keysITEMNo foreign keysPURCHASEForeign key:CustomerID referencesCustomerID in CUSTOMERPURCHASE_ITEMForeign Keys:InvoiceNumber referencesInvoiceNumber in PURCHASEItemNumber referencesItemNumber in ITEMl CUSTO
15、MER表的数据INSERT INTO CUSTOMER VALUES('Stanley', 'Elizabeth','555-236-7789', 'ES');INSERT INTO CUSTOMER VALUES('Price', 'Fred', '555-236-0091', 'FP');INSERT INTO CUSTOMER VALUES('Becky', 'Linda', '555-236-0392',
16、9;LB');INSERT INTO CUSTOMER VALUES('Birch', 'Pamela', '555-236-4493', 'PB');INSERT INTO CUSTOMER VALUES('Romez', 'Ricardo', '555-236-3334', 'RR');INSERT INTO CUSTOMER VALUES('Jackson', 'Samantha', '555-236-1095
17、39;, 'SJ');l ITEM表的数据INSERT INTO ITEM VALUES('Gold Bracelet', 120.00, 'Mary Josephson');INSERT INTO ITEM VALUES('Gold Necklace', 160.00, 'Baker');INSERT INTO ITEM VALUES('Bead Earrings', 50.00, 'Mary Josephson');INSERT INTO ITEM VALUES('Gol
18、d Bracelet', 180.00, 'Baker');INSERT INTO ITEM VALUES('Silver Necklace', 135.00, 'Baxter');INSERT INTO ITEM VALUES('Bead Earrings', 25.00, 'Mary Josephson');INSERT INTO ITEM VALUES('Bead Earrings', 22.50, 'Mary Josephson');INSERT INTO ITEM
19、VALUES('Gold Earrings', 50.00, 'John Lintz');INSERT INTO ITEM VALUES('Gold Necklace', 160.00, 'John Lintz');INSERT INTO ITEM VALUES('Bead Earrings', 20.00, 'Mary Josephson');INSERT INTO ITEM VALUES('Bead Earrings', 35.00, 'Mary Josephson
20、9;);INSERT INTO ITEM VALUES('Bead Earrings', 45.00, 'Mary Josephson');INSERT INTO ITEM VALUES('Gold Necklace', 225.00, 'John Lintz');INSERT INTO ITEM VALUES('Silver Earrings', 55.00, 'John Lintz');INSERT INTO ITEM VALUES('Gold Bracelet', 200.00
21、, 'John Lintz');l PURCHASE表的数据:INSERT INTO PURCHASE VALUES('06-04-05', 155.00, 1);INSERT INTO PURCHASE VALUES('06-04-07', 203.00, 2);INSERT INTO PURCHASE VALUES('06-04-11', 75.00, 3);INSERT INTO PURCHASE VALUES('06-04-15', 67.00, 4);INSERT INTO PURCHASE VALUES
22、('06-04-15', 330.00, 5);INSERT INTO PURCHASE VALUES('06-04-16', 25.00, 1);INSERT INTO PURCHASE VALUES('06-04-16', 45.00, 3);INSERT INTO PURCHASE VALUES('06-04-18', 445.00, 1);INSERT INTO PURCHASE VALUES('06-04-19', 72.00, 6);l PURCHASE_ITEM表的数据INSERT INTO PURC
23、HASE_ITEM VALUES(1, 1, 155.00);INSERT INTO PURCHASE_ITEM VALUES(2, 2, 120.00);INSERT INTO PURCHASE_ITEM VALUES(3, 3, 75.00);INSERT INTO PURCHASE_ITEM VALUES(4, 6, 35.00);INSERT INTO PURCHASE_ITEM VALUES(4, 7, 32.00);INSERT INTO PURCHASE_ITEM VALUES(5, 4, 240.00);INSERT INTO PURCHASE_ITEM VALUES(5, 8
24、, 90.00);INSERT INTO PURCHASE_ITEM VALUES(6, 10, 25.00);INSERT INTO PURCHASE_ITEM VALUES(7, 11, 45.00);INSERT INTO PURCHASE_ITEM VALUES(8, 5, 175.00);INSERT INTO PURCHASE_ITEM VALUES(8, 9, 215.00);INSERT INTO PURCHASE_ITEM VALUES(8, 12, 55.00);INSERT INTO PURCHASE_ITEM VALUES(9, 14, 72.00);D 用SQL语句显
25、示所有表的所有列./* CUSTOMER DATA */SELECT * FROM CUSTOMER;/* ITEM DATA */SELECT * FROM ITEM;/* PURCHASE DATA */SELECT * FROM PURCHASE;/* PURCHASE_ITEM */SELECT * FROM PURCHASE_ITEM;E 用SQL语句列出所有花费超过$100的珠宝的ItemNumber和Description.SELECTItemNumber, DescriptionFROMITEMWHERECost > 100;F 用SQL语句列出所有花费超过$100且Ar
26、tistName以 son结尾的珠宝的ItemNumber和DescriptionFor Access: SELECTItemNumber, DescriptionFROMITEMWHERECost > 100ANDArtistName LIKE '*son*'For SQL Server 2008 and MySQL: SELECTItemNumber, DescriptionFROMITEMWHERECost > 100ANDArtistName LIKE '%son'G 用子查询SQL语句显示所购商品中至少一件的PreTaxAmount 超过$
27、200的客户的LastName 和 FirstName SELECTLastName, FirstNameFROMCUSTOMERWHERECustomerID IN(SELECTCustomerID FROMPURCHASE WHEREPreTaxAmount > 200);H 用 连接查询完成问题G.SELECTLastName, FirstNameFROMCUSTOMER, PURCHASEWHERECUSTOMER.CustomerID = PURCHASE.CustomerIDANDPreTaxAmount > 200;Note: 和G的结果一致但顺序不同。I W用子查询
28、SQL语句显示所购买珠宝单价(RetailPrice)超过$50的客户的LastName 和 FirstName .SELECTLastName, FirstNameFROMCUSTOMERWHERECustomerID IN(SELECTCustomerID FROMPURCHASE WHEREInvoiceNumber IN(SELECTInvoiceNumber FROMPURCHASE_ITEM WHERERetailPrice > 50);J 用连接回答问题I.SELECTDISTINCT LastName, FirstNameFROMCUSTOMER, PURCHASE, P
29、URCHASE_ITEMWHERECUSTOMER.CustomerID = PURCHASE.CustomerIDANDPURCHASE.InvoiceNumber = PURCHASE_ITEM.InvoiceNumberANDRetailPrice > 50;Note: 需要使用 DISTINCT 关键字.K 用子查询SQL语句显示购买ArtistName以字母J开头开头的珠宝的所有客户的LastName 和 FirstName。For Access: SELECTLastName, FirstNameFROMCUSTOMERWHERECustomerID IN(SELECTCus
30、tomerID FROMPURCHASE WHEREInvoiceNumber IN(SELECTInvoiceNumber FROMPURCHASE_ITEM WHEREItemNumber IN(SELECTItemNumber FROMITEM WHEREArtistName LIKE 'J*');For SQL Server 2008 and MySQL: SELECTLastName, FirstNameFROMCUSTOMERWHERECustomerID IN(SELECTCustomerID FROMPURCHASE WHEREInvoiceNumber IN(
31、SELECTInvoiceNumber FROMPURCHASE_ITEM WHEREItemNumber IN(SELECTItemNumber FROMITEM WHEREArtistName LIKE 'J%');L 用连接回答问题K.For Access: SELECTLastName, FirstNameFROMCUSTOMER, PURCHASE, PURCHASE_ITEM, ITEMWHERECUSTOMER.CustomerID = PURCHASE.CustomerIDANDPURCHASE.InvoiceNumber = PURCHASE_ITEM.Inv
32、oiceNumberANDPURCHASE_ITEM.ItemNumber = ITEM.ItemNumberANDArtistName LIKE 'J*'For SQL Server 2008 and MySQL: SELECTDISTINCT LastName, FirstNameFROMCUSTOMER, PURCHASE, PURCHASE_ITEM, ITEMWHERECUSTOMER.CustomerID = PURCHASE.CustomerIDANDPURCHASE.InvoiceNumber = PURCHASE_ITEM.InvoiceNumberANDPU
33、RCHASE_ITEM.ItemNumber = ITEM.ItemNumberANDArtistName LIKE 'J%'M 用SQL语句列出每个客户的LastName、FirstName和PreTaxAmount 的总和。.SELECTLastName, FirstName, SUM(PreTaxAmount) AS TotalPreTaxAmountFROMCUSTOMER, PURCHASEWHERECUSTOMER.CustomerID = PURCHASE.CustomerIDGROUP BYLastName, FirstName;N 用SQL语句为每个 Arti
34、stName统计PreTaxAmount 的总和,按 ArtistName降序排列。SELECTArtistName, SUM(PreTaxAmount) AS TotalPreTaxAmountFROMITEM, PURCHASE_ITEM, PURCHASEWHEREITEM.ItemNumber = PURCHASE_ITEM.ItemNumberANDPURCHASE_ITEM.InvoiceNumber = PURCHASE.InvoiceNumberGROUP BYArtistNameORDER BYArtistName DESC;O 用SQL语句为每个 ArtistName统计PreTaxAmount 的总和,但排除PreTaxAmount小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 哈尔滨体育学院《动物解剖学》2024-2025学年第一学期期末试卷
- 2025年河南省安阳市第35中学 化学高二第一学期期末监测试题含解析
- 甘肃省武威市第一中学2026届高二上物理期末质量检测模拟试题含解析
- 遵义职业技术学院《工程经济与伦理》2024-2025学年第一学期期末试卷
- 辽宁省大连市庄河高级中学2025年化学高二第一学期期末监测试题含解析
- 湖北省浠水县实验中学2025-2026学年高二生物第一学期期末联考模拟试题含解析
- 北京西城44中2025年高二上化学期末综合测试模拟试题含解析
- 2026届陕西咸阳市高二上化学期末综合测试模拟试题含解析
- 造价后评估管理制度
- 组装电脑采购合同范本
- 【管理会计师专业能力中级考试案例】
- 《非营利组织管理》第4章 人力资源管理
- 智能电网与电动汽车双向互动技术
- GB/T 41304.2-2022知识管理方法和工具第2部分:设计理性知识建模
- 中考语文非连续性文本阅读10篇专项练习及答案
- 24、小数加减法整理和复习课件苏教版五上数学
- 新生儿复苏现场抢救记录表doc资料
- 生物硫磺课件
- 化工管道讲座-石化概算指标2007版
- 《罗织经》全文及翻译
- 压力容器年度检查表
评论
0/150
提交评论