SQL語言教學(where、比較與推理、集合與範圍)


Posted by Leo Li on 2025-03-01

3C電商資料

電商網站原始資料

--商品資料表
CREATE TABLE products( 
name VARCHAR(100), --商品名稱
  price INTEGER, --原價
  discount_price INTEGER, --折扣價
  stock INTEGER, --庫存數量( 
  category VARCHAR(50), --商品類型status VARCHAR(20) --庫存數量(category VARCHAR(50), --商品類型
  status VARCHAR(20) -- 商品狀態(上架商品狀態(上架) 
)
INSERT INTO (name, price, discount_price, stock, category, status) VALUES
  ('iPhone 16', 25000, 23000, 50, '3C', 'active'), 
  ('ASUS Swift GO UItra 7', 33000, 31490, 5, '3C', 'inactive'),
  ('GoPro HERO12 Black', 10000, 9000, 25, '3C', 'active'),
  ('升降書桌', 4600, 2300, 100, '家具', 'active'),
  ('辦公桌', 1500, 750, 30, '家具', 'active'), 
  ('辦公椅', 1000, 660, '家具', 'active');

WHERE 篩選

篩選數據,用來進一步與SELECT查詢語句做搭配運算子來找出「符合條件」。

尋找3C類型的產品

SELECT name, price 
FROM products
WHERE category = '3C';

篩選出3C類型產品


SQL執行順序

實際SQL運行是先將資料表取再依條件篩選後,之後照著位置名稱顯示於查詢結果上。
SQL執行順序


比較運算子

如果您有寫過程式的人來對您不陌生,因為在SQL語言法上也有計算的方式。
比較運算子
<>(標準SQL用法) != (支援某些資源庫,如:MySQL、PostgreSQL、SQL Server)

尋找折扣價格低於3000元的商品

SELECT *
FROM products
WHERE discount_price < 3000;

尋找折扣價格低於3000元的商品


邏輯運算子

邏輯運算子

已上架的3C產品

SELECT name, price, stock
FROM products
WHERE status = 'active' AND category = '3C';

已上架的3C產品

下架或無商品

SELECT name, price, stock
FROM products
WHERE status = 'inactive' OR stock = 0;

下架或無商品


集合與範圍運算子

集合與範圍運算子

今天是雙十一網路商品大特價,想要便宜一點,預算在5000~10000元

SELECT name, price, stock
FROM products
WHERE discount_price BETWEEN 5000 AND 10000;

Between

找不到特定類別商品

SELECT name, price, stock
FROM products
WHERE category IN ('3C', '家具');

找不到特定類別商品

排除特定商品(iPhone 16、辦公桌、辦公椅)

SELECT 名稱, 價格, 庫存
FROM products 
WHERE name NOT IN ('iPhone 16', '辦公桌', '辦公椅');

排除特定商品


#SQL #where #between #In #Not In







Related Posts

[ JS101] JavaScript 內建函式

[ JS101] JavaScript 內建函式

 [day 05] getter & setter: 屬性描述器

[day 05] getter & setter: 屬性描述器

匯入小工具 (2) - 如何與資料庫連接

匯入小工具 (2) - 如何與資料庫連接


Comments