---
# System prepended metadata

title: '張晏豪-R16081221 : Day1-SQL'

---

# 張晏豪-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:請將截圖和程式碼貼上
:::
