You are on page 1of 10

BÀI TẬP NHÓM

Lớp: D01

Nhóm: 13

Yêu cầu 2: Cấu trúc của tất cả các bảng còn lại của lược đồ cơ sở dữ liệu TOYWORD là:

Shipment
Attribute name Datatype
cOderNo char(6) Shipping Mode
dShipmentDate datetime Attribute name Datatype
cDeliveryStatus char cModeId char(2)
dActualDelivery Date datetime cMode char(25)
iMaxDelDays int
Recipient
Attribute name Datatype Shopper
cOderNo char(6) Attribute name Datatype
vFirstName varchar(20) cShopper char(6)
vLastName varchar(20) cPassword char(10)
vAddress varchar(20) vFirstName varchar(20)
cCity char(15) vLastName varchar(20)
cState char(15) vEmailId varchar(40)
cCountryId char(3) vAddress nvarchar(40)
cZipCode char(10) cCity char(15)
cPhone char(15) cState char(15)
cCountryId char(3)
cZipCode char(10)
Country cPhone char(15)
Attribute name Datatype cCreditCardNo char(16)
cCountryId char(3)
cCountry char(25) Warpper
Attribute name Datatype
Shipping Rate cWarpper char(3)
Attribute name Datatype vDescription varchar(20)
cCountryId char(3) mWrapperRate money
cModeId char(2) imPhoto image
mRatePerPound money vWrapperImgPath varchar(50)

Order Details
Attribute name Datatype
cOderNo char(6)
Orders
Attribute name Datatype
cOrderNo char(6)
cToyId char(6) dOrderDate Datetime
siQty smallint cCartId char(6)
cGiftWarp char
cShopperId char(6)
cWrapperId char(3)
vMessage varchar(256) cShoppingModelId char(2)
mToycost money mShippingCharges money
mGiftWrapCharges money
cOrderProcessed char
mTotalCost money
Shopping Cart
dExDelDate Datetime
Attribute name Datatype
cCartId char(6)
Pick of Month
cToyId char(6)
Attribute name Datatype
siQty smallint cToyId char(6)
siMonth smallint
iYear int
iTotalSold int
Yêu cầu 3: Mô tả CSDL TOYWWORD
Một cửa hàng tên TOYWORLD chuyên bán rất đa dạng các loại đồ chơi:

- Mỗi loại đồ chơi gồm có : Tên, mã số, hình ảnh, mô tả về đồ chơi, độ tuổi được phép sử
dụng, mức độ yêu thích, nhà sản xuất, ngày sản xuất, trọng lượng và lượng tồn kho. Mỗi
loại đồ chơi có thể được mua bởi nhiều khách hàng và mỗi khách hàng có thể mua nhiều
loại đồ chơi.
- Mỗi khách hàng sẽ có một tài khoản mua hàng gồm: Mã số khách hàng, mật khẩu, họ và
tên, email, địa chỉ, mã vùng, bang, số điện thoại, số CCCD, số thẻ ngân hàng, giỏ hàng.
Trong giỏ hàng có mã giỏ, mã số đồ chơi. Mỗi vùng có một mã vùng và tên vùng riêng.
- Cửa hàng có nhiều kiểu giao hàng, kiểu giao hàng bao gồm: Mã số kiểu giao, tên kiểu
giao, ngày giao dự kiến. Khi mua khách hàng có thể yêu cầu nhiều nhất một dịch vụ giao
hàng và gói hàng. Dịch vụ gói hàng gồm: Mã kiểu gói, giá, hình ảnh minh họa kiểu gói.
- Với mỗi lần mua, khách hàng sẽ được xuất một hóa đơn, trong hóa đơn gồm: Mã số hóa
đơn, ngày in, mã giỏ hàng, mã kiểu giao hàng, phí giao, phí gói hàng, tình trạng xử lý
đơn hàng, quá trình vận chuyển, tổng tiền.
- Với mỗi hóa đơn thì có chi tiết cho đơn hàng gồm: Số hóa đơn, mã số đồ chơi, số lượng
tồn kho, giá đồ chơi, tin nhắn đặt hàng, kiểu gói hàng.
- Nếu khách hàng lựa chọn dịch vụ giao hàng tận nhà thì phải điền vào phiếu giao hàng
gồm: Mã số hóa đơn, họ và tên, địa chỉ, bang, mã vùng và số điện thoại. Và trong hóa
đơn sẽ có: Ngày giao hàng, tình trạng đơn hàng, ngày nhận hàng.

Yêu cầu 4:
1)     SECLECT *

FROM      Toys 

2)     SELECT *

FROM Shopper 

3)     SELECT *

FROM Recipient

4)     SELECT vFirstname, vLastname, vEmailid

FROM     Shopper

5) SELECT cOrderNo, cShippingModelid, mShippingCharges, mTotalCost

 FROM      Orders

6) SELECT vToysName, mToyrate

FROM Toys

7) SELECT vToyName, siLowerAge, siUpperAge

FROM Toys

8) SELECT vToyName, siToyQoh, siToyWeight

FROM Toys

GROUP BY vToyName

9) SELECT vFirstName, vLastName, vAddress, cZipCode

FROM Recipient

GROUP BY cZipCode

10)  SELECT vFirstName, vLastName

FROM Recipient

WHERE cState = N’tiểu bang California’

11)  SELECT *

FROM Orders

WHERE mTotalCost > 75

12)  SELECT cToyId, mToyRate


FROM Toys

WHERE vToyNam in (’ Baby Minnie’ ,  ‘Dune Racer’)

13) 

14) SELECT vToyName, vToyDescription, mToyrate

   FROM Toys

15) SELECT cOrderNo, dShipmentDate, dActualDeliverydate, (dActualDeliverydate) –  


(dShipmentDate) AS Days in Transit

  FROM Shipment

GROUP BY cOderNo

16.

17. SELECT cToyName, cCategoryId

   FROM Toys

18. SELECT cToyName, cBrandId, cCategoryId

   FROM Toys

19.

20. SELECT vFirstName, vLastName, vAddress, cCity

   FROM Shopper, Recipient  “Stuffed Toys”

21. SELECT vToyName

   FROM Toys

   WHERE cCategory = N(‘Stuffed Toys’)

22. SELECT vToyName

   FROM Toys

   WHERE mToyRate < 20

23. SELECT vToyName


   FROM Toys

   WHERE cBrandName in ( SELECT cBrandid

                                                 FROM ToyBrand

                                                  WHERE cBrandName = N’largo’)

24.

25. SELECT *

   FROM Toys

   WHERE cCategoryId= N’002’

26. SELECT *

   FROM Orders

   WHERE dOrderDate = ‘22/05/2001’

27. SELECT cOrderNo, cShoppingCharges, mGiftWrapCharges, (cShoppingCharges) –


(mGiftWrapCharges) AS Handling Charges

   FROM Orders

  GROUP BY cOrderNo

28. SELECT *

   FROM Toys

   WHERE ( mToyRate BETWEEN 10 AND 20)

29. SELECT vFirstname, vLastName, vEmailId

   FROM Shopper

WHERE cState IN (‘California’,’ Illinois’)

30. SELECT cOrderNo, dOrderDate, cShopperId, mTotalCost

  FROM Oders

WHERE dOrderDate = ‘22/05/2001’ AND mTotalCost >75

ORDER BY dOrderDate

31. SELECT

32.

33. 
34. SELECT ROUND(AVG(nPrice), 0) as AvgPrice

FROM Toys

35. SELECT ShopperID, OrderNo

FROM GiftTransaction

WHERE ShopperID IN 

    (SELECT ShopperID 

     FROM Shopper 

     WHERE cState = (SELECT cState FROM Recipient WHERE Recipient.cShopperID =


GiftTransaction.cRecipientID))

36. Error: WHERE must set before FROM

SELECT *

INTO CaliforniaShoppers

FROM Shopper 

WHERE cState = 'California'

37. SELECT cFirstName, cLastName

FROM Shopper

WHERE cCity IN ('Woodbridge', 'San Jose', 'Las Vegas')

38. SELECT cToyName

FROM Toys

WHERE cGiftWrap = 'No'

39. SELECT DISTINCT OrderNo, nShipPrice

FROM GiftTransaction

40. a)

Lệnh SELECT sử dụng hai bảng Recipient và Shopper nhưng chúng không được kết nối với
nhau, điều này dẫn đến dữ liệu trả về không rõ ràng. Chúng ta cần kết hợp hai bảng này với một
điều kiện để lựa chọn ra kết quả cần thiết. Ngoài ra, tên cột trong câu lệnh không được sử dụng
đúng cách, cần phải sửa lại.

SELECT Recipient.cOrderNo, Recipient.cCity, Recipient.cState, Recipient.cZipCode,


Recipient.cPhone 
FROM Recipient 

INNER JOIN Shipment ON Recipient.cOrderNo = Shipment.cOrderNo 

b. Số lượng cột của 2 SELECT phải bằng nhau, cột cZipCode ở Select thứ 2 phải đổi vị trí với
cPhone

SELECT cCity, cZipCode, cPhone, cState

FROM Recipient

UNION

Select cCity, CZipCode, cState, cPhone

FROM Shopper

41.

SELECT cFirstName, cLastName, COUNT(*) as Total

FROM Shopper JOIN GiftTransaction

ON Shopper.ShopperID = GiftTransaction.cShopperID

GROUP BY cFirstName, cLastName

ORDER BY Total DESC LIMIT 1

42.

SELECT cToyName

FROM Toys

WHERE nPrice > 

  (SELECT AVG(nPrice) FROM Toys)

43.

SELECT cToyName

FROM Toys

WHERE cToyID NOT IN (SELECT cToyID FROM GiftTransaction)


44.

SELECT cToyName, SUM(nQuantity) as TotalSold

FROM GiftTransaction JOIN Toys

ON GiftTransaction.cToyID = Toys.cToyID

GROUP BY cToyName

ORDER BY TotalSold DESC LIMIT 1

45. a

SELECT YEAR(dtTransDate) as Year, SUM(nQuantity * nPrice) as Revenue

FROM GiftTransaction

GROUP BY Year

b.

SELECT QUARTER(dtTransDate) as Quarter, SUM(nQuantity * nPrice) as Revenue

FROM GiftTransaction

WHERE YEAR(dtTransDate) = 2001

GROUP BY Quarter

c.

SELECT MONTHNAME(dtTransDate) as Month, SUM(nQuantity * nPrice) as Revenue

FROM GiftTransaction

WHERE YEAR(dtTransDate) = 2001

GROUP BY Month

46.

SELECT cFirstName, cLastName, OrderNo

FROM GiftTransaction JOIN Shopper JOIN Recipient

ON GiftTransaction.cShopperID = Shopper.ShopperID AND GiftTransaction.cRecipientID =


Recipient.cShopperID
WHERE Shopper.cFirstName = Recipient.cFirstName AND Shopper.cLastName =
Recipient.cLastName

47.

SELECT cToyType, ROUND(AVG(nPrice), 0) as AvgPrice, MIN(nPrice) as MinPrice,


MAX(nPrice) as MaxPrice

FROM Toys

GROUP BY cToyType

48.

SELECT cToyType, OrderNo, MAX(nPrice) as MaxPrice

FROM Toys JOIN GiftTransaction

ON Toys.cToyID = GiftTransaction.cToyID

GROUP BY cToyType, OrderNo

HAVING MAX(nPrice) = (SELECT MAX(nPrice) FROM Toys)

49.

SELECT cBrand, COUNT(*) as Total

FROM GiftTransaction JOIN Toys

ON GiftTransaction.cToyID = Toys.cToyID

GROUP BY cBrand

ORDER BY Total DESC LIMIT 1

50.

SELECT DISTINCT cWrapping

FROM GiftTransaction

You might also like