# 小節作業:家具店的菜雞銷售奇遇記
## 基礎比較運算:
### 情境 1:單品查詢
客人:「這張北歐風雙人沙發多少錢?」
小美想查:想找到這張沙發的價格和庫存
```SQL=
SELECT name, price, stock --顯示欄位:商品名、價錢、庫存
FROM products --要查找的資料表:products
WHERE name = '北歐風雙人沙發' --條件:商品名符合'北歐風雙人沙發'
```
### 情境 2:價格比較
客人:「請列出 5000 元以下的櫃子有哪些?」
小美想查:找出櫃子類且價格在 5000 以下的商品
```SQL=
SELECT * --顯示符合類別的資料中所有欄位內容
FROM products
WHERE category='櫃子' AND price<5000 --條件:類別為'櫃子'且價格小於5000
```
### 情境 3:庫存確認
客人:「日式雙人床架還有貨嗎?」
小美想查:確認日式雙人床架的庫存狀況
```SQL=
SELECT name, stock
FROM products
WHERE name='日式雙人床架'
```
## 邏輯運算 AND:
### 情境 4:預算內的商品 客人:「想找 4 萬以下,而且有現貨的沙發」
小美想查:要同時符合:是沙發、4萬以下、有庫存
```SQL=
SELECT *
FROM products
WHERE category='沙發' AND price<40000 AND stock > 0
```
### 情境 5:特價且有貨
客人:「沙發有哪些特價且現貨的品項?」
小美想查:要找到沙發類且有特價(原價大於優惠價)且還有庫存的商品
```SQL=
SELECT name, price, discount_price, stock
FROM products
WHERE category='沙發' AND price>discount_price AND stock>0
```
### 邏輯運算 OR:
情境 6:多分類查詢
客人:「我要找櫃子或桌子」
小美想查:要找出櫃子類或桌子類的商品
```SQL=
SELECT *
FROM products
WHERE category='櫃子' OR category='桌子'
```
### 情境 7:指定商品
客人:「北歐風雙人沙發和貓抓皮L型沙發哪個還有貨?」
小美想查:要找出這兩張特定沙發的庫存狀況
```SQL=
SELECT name, stock
FROM products
WHERE name='北歐風雙人沙發' OR name='貓抓皮L型沙發'
```
## IN 運算:
### 情境 8:多分類查詢
客人:「客廳的家具有哪些?我要看沙發、櫃子跟桌子」
小美想查:要找出沙發、櫃子和桌子這三種分類的商品
```SQL=
SELECT name, category
FROM products
WHERE category IN ('沙發', '櫃子', '桌子')
```
### 情境 9:特定商品
客人:「電腦辦公椅和餐椅四入組的價格是多少?」
小美想查:要找出這兩款椅子的價格
```SQL=
SELECT name, price
FROM products
WHERE name IN ('電腦辦公椅', '餐椅四入組')
```
## BETWEEN:
### 情境 10:價格區間
客人:「想找 10000 到 20000 之間的商品有哪些?」
小美想查:列出這個價格區間的所有商品
```SQL=
SELECT name, price
FROM products
WHERE price BETWEEN 10000 AND 20000
```
### 情境 11:庫存區間
主管:「請列出庫存在 5 到 15 之間的商品」
小美想查:列出庫存數量在這個範圍的商品
```SQL=
SELECT name, stock
FROM products
WHERE stock BETWEEN 5 AND 15
```
## NOT IN:
### 情境 12:排除商品
主管:「列出除了沙發和床架以外的商品」
小美想查:要找出不是沙發和床架的商品
```SQL=
SELECT name, category
FROM products
WHERE category NOT IN ('沙發', '床架')
```
## 更新和刪除:
### 情境 13:調整價格
主管:「北歐風雙人沙發要調降 2000 元」
小美想查:要如何更新這張沙發的價格
```SQL=
UPDATE products
SET price = price-2000
WHERE name = '北歐風雙人沙發'
```
### 情境 14:更新庫存
主管:「電腦辦公椅進了 5 張」
小美想查:要如何增加這款椅子的庫存數量
```SQL=
UPDATE products
SET stock = stock+5
WHERE name = '電腦辦公椅'
```
### 情境 15:清除資料
主管:「要清掉兒童床架和電競書桌的資料」
小美想查:要如何刪除這兩項商品
```SQL=
DELETE FROM products
WHERE name IN ('兒童床架', '電競書桌')
```
## 額外情境練習
客人 : 請幫我查詢價格 3萬~5萬 的沙發有哪些,並且確認都是有庫存的
```SQL=
SELECT name, price, stock
FROM products
WHERE stock>0 AND price BETWEEN 30000 AND 50000
```
# Tables 資料表管理
## 關鍵欄位介紹
### 主鍵 (Primary Key. PK)
### 外來鍵 (Foreign Key)
# 小節作業:主鍵、外來鍵、inner join