112年高考二級高等資料庫設計

三、考慮以下的商品資料庫綱目 (Database Schema)

    User(uId, name, date)

    // 使用者編號,姓名,加入日期

    Product(pId, seller, name, category, star, sale)

    // 商品編號,賣家名稱,商品名稱,類別,星等,售出數量

    Opinion(uId, pId, seller, time, comment, star)

    // 使用者編號,商品編號,賣家名稱,評論日期,意見,星等

    各資料表的主鍵 (Primary key) 以底線表示。此外,並有以下的外鍵 (Foreign key)

    Opinion(uId) 參考到 User 的主鍵

    Opinion(pId, seller) 參考到 Product 的主鍵

    請寫出下列問題的結構化查詢語言 (SQL)

    ()列出2023年加入的使用者編號和姓名(5分)

    ()列出商品名稱為「掃地機器人」在2023年的總評論數(8分)

    ()找出在2023年對於「掃地機器人」做出最多評論的使用者之編號和姓  名。(10分)

答:

User資料表:

uId

name

date

U001

王一

2022-01-05

U002

張二

2022-01-22

U003

陳三

2023-03-01

U004

吳四

2023-05-05

Product資料表:

pId

seller

name

category

star

sale

P001

賣家一

掃地機器人

類別一

2

100

P001

賣家二

掃地機器人

類別一

2

300

P002

賣家一

商品二

類別二

3

200

P002

賣家二

商品二

類別二

4

400

P003

賣家二

商品三

類別二

5

600

P004

賣家三

商品四

 類別一

2

100

Opinion資料表:

uId

pId

seller

time

comment

star

U001

P001

賣家一

2022-10-01 12:00:00.000

評論一

2

U001

P001

賣家二

2022-10-03 00:00:00.000

評論二

3

U002

P001

賣家一

2023-10-05 00:00:00.000

評論三

2

U002

P001

賣家二

2023-10-07 16:20:00.000

評論四

3

U003

P001

賣家二

2023-03-22 00:00:00.000

評論五

3

U003

P001

賣家二

2023-11-01 00:00:00.000

評論六

2

U004

P003

賣家二

2024-02-01 20:00:00.000

評論七

3

()列出2023年加入的使用者編號和姓名

Select uId As 使用者編號, name As 姓名

From [User]

Where Year(date) = '2023'

執行結果:

使用者編號

姓名

U003

陳三

U004

吳四

()列出商品名稱為「掃地機器人」在2023年的總評論數

Select Count(*) As 總評論數

From Product As P, Opinion As O

Where P.pid = O.pid And P.seller = O.seller And Year(O.time) = '2023' And

    P.name = '掃地機器人'

Group By P.pid

執行結果:

總評論數

4

()找出在2023年對於「掃地機器人」做出最多評論的使用者之編號和姓名

Select U.uid As 使用者編號, U.name As 姓名

From [User] As U, Product As P, Opinion As O

Where U.uid = O.uid And P.pId = O.pId And P.seller = O.seller And

    P.name = '掃地機器人' And Year(O.time) = '2023'

Group By U.uid, U.name

Having Count(*) = (Select Max(ReviewCount)

                 From (Select Count(*) As ReviewCount

                       From Product As P, Opinion As O

                       Where P.pId = O.pId And P.seller = O.seller And

                           P.name = '掃地機器人' And Year(O.time) = '2023'

                       Group By O.uid) As Tb)

執行結果:

使用者編號

姓名

U002

張二

U003

陳三

 

arrow
arrow
    文章標籤
    高考二級高等資料庫設計
    全站熱搜

    jacksaleok 發表在 痞客邦 留言(1) 人氣()