# 張晏豪-R16081221 : Day1-SQL 練習網站 : https://www.w3schools.com/sql/default.asp :::info SQL 要學 : Select 、 where 、 And,Or,Not 、 Order By(排序a~z)、Union、Delete、Join ::: ### 1.SELECT SELECT語句用於從數據庫中選擇數據。 FROME後面可以塞很多個,用','隔開 ![](https://i.imgur.com/QAYBh7C.png) :::warning 挑戰 : 列印出資料庫所有的欄位名稱(請用插入表格) 答案 : ![](https://i.imgur.com/TZ3PhO8.png) ![](https://i.imgur.com/O1OEpsF.png) ![](https://i.imgur.com/hqAGqYa.png) ![](https://i.imgur.com/gEBRWBO.png) ![](https://i.imgur.com/oCWv1QW.png) ![](https://i.imgur.com/ep5XSiL.png) ![](https://i.imgur.com/CJmVwa9.png) ![](https://i.imgur.com/QVTtfqB.png) 語法: SELECT * FROM table_name * *欄位全部 ::: ### 2.WHERE ![](https://i.imgur.com/jPxvBbF.png) :::warning 挑戰 : 從Products中找出Price大於200元的商品名子是什麼? 答案 :+1: SELECT P.ProductName FROM Products P WHERE P.Price>200 ![](https://i.imgur.com/LOnGI4H.png) ps:請將截圖和程式碼貼上 ::: ### 3.AND, OR and NOT WHERE子句可以與AND,OR和NOT運算符結合使用。 ![](https://i.imgur.com/Pt3sxIl.png) ![](https://i.imgur.com/GKM9C0y.png) ![](https://i.imgur.com/5vWVpzb.png) :::warning 挑戰 : 從Product和Suppliers中找出介在100~200之間的商品(請嘗試用NOT寫出),且Country是UK的ProductName、Price、Country。 答案 : SELECT P.ProductName,P.Price,S.Country FROM Suppliers S,Products P WHERE NOT(P.Price < 100 OR P.Price > 200) AND S.Country = 'UK' ![](https://i.imgur.com/0jaHgup.png) 提示 : AND、OR、NOT 都會用到 ::: ### 4.ORDER BY ORDER BY關鍵字用於按升序或降序對結果集進行排序。 ![](https://i.imgur.com/DE8vVsj.png) :::warning 挑戰 : 從Products中找出Price小於20元的商品,Price由大排到小 答案 : SELECT * FROM Products P WHERE P.Price <20 ORDER BY P.Price DESC ![](https://i.imgur.com/KOTUdce.png) * DESC 大到小排序 ps:請將截圖和程式碼貼上 ::: ### 5.UNION UNION運算符用於合併兩個或多個SELECT語句的結果集,結果不會重複。 ![](https://i.imgur.com/xUw3q68.png) :::warning 挑戰 : 從“Customers”和“Suppliers”表中Country是'Japan',他們的ContactName是什麼? 答案 : SELECT ContactName FROM Customers WHERE Country = 'Japan' UNION SELECT ContactName FROM Suppliers WHERE Country = 'Japan' ![](https://i.imgur.com/lXVX5ng.png) * 要把ContactName欄位SELECT出來,兩個Table都要各輸入一次條件 提示 : 找共同欄位請看select挑戰的答案 ps:請將截圖和程式碼貼上 ::: ### 6.Delete DELETE語句用於刪除表中的現有記錄。 ![](https://i.imgur.com/raF7kXg.png) :::danger 注意 : 刪完記得案restroe database ::: :::warning 挑戰 : 從Products中,將CategoryID等於3且Price小於20元的刪掉,並比較刪前刪後的結果。 答案 : DELETE FROM Products WHERE CategoryID= 3 AND Price < 20; 刪除後: ![](https://i.imgur.com/W6S5ORW.png) ![](https://i.imgur.com/ZV9CdqA.png) ![](https://i.imgur.com/ajENC97.png) 原本資料: ![](https://i.imgur.com/hkJt0bR.png) ![](https://i.imgur.com/o6qcVwv.png) ---------------------------------- 加分INSERT: ![](https://i.imgur.com/cpZxVKP.png) ![](https://i.imgur.com/7xAW0vq.png) * 學號有R不能放,因為資料型態不符 ps:請將截圖和程式碼貼上 ::: ### 7.JOIN(找例子:left & right) JOIN子句用於根據兩個或多個表之間的相關列來組合它們。 ![](https://i.imgur.com/aACTfei.png) :::warning 挑戰 : 從Emloyees和Orders中left Join出 EmployeeID相等的人,並列出EmployeeID、FirstName和Orders全部的欄位 答案 :100: SELECT E.EmployeeID,E.FirstName,O.* FROM Employees E LEFT JOIN Orders O ON O.EmployeeID=E.EmployeeID; ![](https://i.imgur.com/eR37YS9.png) ![](https://i.imgur.com/cPb1X00.png) * FROM TABLE 1(左邊) LEFT JOIN TABLE 2 含全部TABLE1 ps:請將截圖和程式碼貼上 :::