# 🏅 Day 17 - SQL 相關語法 有一間廠商即將建置「**健身教練線上直播課平台**」 **其優點是:** - **小班制健身直播課制**:教練會在平台開課,學生前往教練開設的課程頁面報名,課程時間到了後,就可點擊課程直播室進行上課 - 堂數售價:每位健身教練的收費都一致,一堂 50 分鐘**小班制健身直播課**都是 200 元 #### 堂數組合包方案 - 7 堂組合包方案: - 價格:1,400 元 - 14 堂方案: - 價格:2,520 元 - 21 堂方案: - 價格:4,800 元 ## 需要必備的知識點 1. [postgres 函式](https://courses.hexschool.com/courses/2025-node-js/lectures/58664093) ## 額外知識補充 1. 下方的 `created_at`、`updated_at` 的 DEFAULT 是**預設值**意思,若是在建立資料時沒填寫的話不會報錯,而是會能放預設值 3. 下方的建立資料表,會需要用雙引號`"USER"`原因是,postgreSQL 的 user 是關鍵字,為了避免撞名所以需要加上雙引號 4. 在選取資料表時, 也請留意要加上雙引號,例如 `SELECT * FROM "USER"` 5. timestamp 也是一種資料格式(Data Type),主要是「時間格式」,範例為 `2024-11-24T17:42:04.452Z` ## 請先建立 users 資料表,再行答題 ```sql CREATE TABLE "USER" ( "id" uuid PRIMARY KEY NOT NULL DEFAULT (gen_random_uuid()), "name" varchar(50) NOT NULL, "email" varchar(320) UNIQUE NOT NULL, "role" varchar(20) NOT NULL, -- 角色,分別有 "USER"、"COACH" "created_at" timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP), "updated_at" timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP) ); ``` ## 題目 **1\. 新增**:新增六筆用戶資料,資料如下: - 用戶名稱為 `李燕容`,Email 為 `lee2000@hexschooltest.io`,Role 為 `USER` - 用戶名稱為 `王小明`,Email 為 `wXlTq@hexschooltest.io`,Role 為 `USER` - 用戶名稱為 `肌肉棒子`,Email 為 `muscle@hexschooltest.io`,Role 為 `USER` - 用戶名稱為 `好野人`,Email 為 `richman@hexschooltest.io`,Role 為 `USER` - 用戶名稱為 `Q太郎`,Email 為 `starplatinum@hexschooltest.io`,Role 為 `USER` - 用戶名稱為 `透明人`,Email 為 `opacity0@hexschooltest.io`,Role 為 `USER` **2\. 修改**:用 Email 找到 `李燕容`、`肌肉棒子`、`Q太郎`,如果他的 Role 為 `USER` 將他的 Role 改為 `COACH` **3\. 刪除**:刪除 `USER` 資料表中,用 Email 找到 `透明人`,並刪除該筆資料 **4\. 查詢**:取得 `USER` 資料表目前所有用戶數量(提示:使用 count 函式) **5\. 查詢**:取得 `USER` 資料表所有用戶資料,並列出前 3 筆(提示:使用 limit 語法) ## 回報流程 將答案寫在 CodePen 並複製 CodePen 連結貼至底下回報就算完成了喔! 解答位置請參考下圖(需打開程式碼的部分觀看) ![](https://i.imgur.com/vftL5i0.png) <!-- 解答: 1. 新增:新增六筆用戶資料,資料如下: INSERT INTO "USER"(name, email, role) VALUES ('李燕容', 'lee2000@hexschooltest.io', 'USER'), ('王小明', 'wXlTq@hexschooltest.io', 'USER'), ('肌肉棒子', 'muscle@hexschooltest.io', 'USER'), ('好野人', 'richman@hexschooltest.io', 'USER'), ('Q太郎', 'starplatinum@hexschooltest.io', 'USER'), ('透明人', 'opacity0@hexschooltest.io', 'USER'); 2. 修改:用 Email 找到 李燕容、肌肉棒子、Q太郎,如果他的 Role 為 USER 將他的 Role 改為 COACH UPDATE "USER" SET role = 'COACH' WHERE email IN ( 'lee2000@hexschooltest.io', 'muscle@hexschooltest.io', 'starplatinum@hexschooltest.io' ) AND role = 'USER'; 3. 刪除:刪除 USER 資料表中,用 Email 找到 透明人,並刪除該筆資料 DELETE FROM "USER" WHERE email = 'opacity0@hexschooltest.io'; 4. 查詢:取得 USER 資料表目前所有用戶數量(提示:使用count函式) SELECT COUNT(*) AS "用戶數量" FROM "USER"; 5. 查詢:取得 USER 資料表所有用戶資料,並列出前 3 筆(提示:使用limit語法) SELECT * FROM "USER" LIMIT 3; --> 回報區 --- | # | Discord | CodePen / 答案 | |--|--|--| | 01. | daffytseng | [CodePen](https://codepen.io/Daffy-Tseng/pen/azorprg) | | 02. | Tau | [CodePen](https://codepen.io/Tau-Hsu/pen/xbKNgov?editors=0010) | | 03. | pja._. | [CodePen](https://codepen.io/PJA0103/pen/OPLYpjQ?editors=0011) | | 04. | adengg | [CodePen](https://codepen.io/Osases/pen/emOaWzz?editors=0010) | | 05. | sui_hsilan | [CodePen](https://codepen.io/suihsilan/pen/jENomqN?editors=0010) | | 06. | poyi | [CodePen](https://codepen.io/poyi-the-flexboxer/pen/vEBwZKo?editors=0010) | | 07. | 馬德 | [CodePen](https://codepen.io/maywang/pen/WbeBErJ?editors=0010) | | 08 | CC(tofuuu_cat) | [CodePen](https://codepen.io/CC-cat/pen/ogvRoeR?editors=0010) | | 09. | Tammy | [CodePen](https://codepen.io/Tammy_Tsai/pen/ZYzNrap) | | 10.| benson| [CodePen](https://codepen.io/DevilButler/pen/zxOQLdL?editors=0010)| |11| janetlai|[Codepen](https://codepen.io/eiddkqxz-the-builder/pen/raBgbXV?editors=0010) | 12. | bian_yang_mofa | [CodePen](https://codepen.io/cssf998811/pen/ZYzdYdz?editors=0010) | | 13. | hannahpun| [CodePen](https://codepen.io/hannahpun/pen/VYZJKRp) | | 14. |ZoeKang |[CodePen](https://codepen.io/byehywmx-the-animator/pen/xbKoWoM?editors=0010)| | 15. |helena |[CodePen](https://codepen.io/helena27/pen/vEBqjrg)| | 16. |ss585801 |[CodePen](https://codepen.io/ss585801/pen/yyBxBde?editors=0010)| | 16. |sian |[CodePen](https://codepen.io/uxitysjl-the-flexboxer/pen/JoPQepa?editors=0010)| | 17.| Rafael| [CodePen](https://codepen.io/yhosutun2490/pen/RNbzQZy) | 18.| JC| [CodePen](https://codepen.io/lifetimingwhisper/pen/JoPgeOL) |19.|Lee|[CodePen](https://codepen.io/leemo-tseng/pen/NPWKLKx?editors=1010) | 20 | hsin yu | [CodePen](https://codepen.io/tina2793778/pen/qEBBEJw) | | 21. | 地呱 | [Codepen](https://codepen.io/wiibxzdw-the-bold/pen/RNwwPQV?editors=0010) | | 22 | HarryKuo | [CodePen](https://codepen.io/harry_kuo/pen/OPJJVwQ?editors=0010)| | 23 | JerryOOO | [CodePen](https://codepen.io/fatiangel/pen/raNVvdy?editors=0010)| | 24 | SHIANG | [CodePen](https://codepen.io/shiang29/pen/ZYEGvbb?editors=1010)| | 25 | Arsian Kuo | [CodePen](https://codepen.io/Arsian-Kuo/pen/NPWdVYy)| | 26 | potato_17859 | [CodePen](https://codepen.io/Girl-Lee/pen/xbxdOwb?editors=0110) | |27|wuyuli_21403| [CodePen](https://codepen.io/Job-Wilhelm/pen/qEBjZVL?editors=0110) | <!-- 可複製下方格式 | | | [CodePen]() | -->