【SQL】MySQL快速入門系列2

【SQL】MySQL快速入門系列2

介紹MySQL的基礎操作

基礎概念

  • 書寫順序
SELECT [DISTINCT]
FROM
JOIN [LEFT JOIN/RIGHT JOIN]
ON
WHERE
GROUP BY
HAVING
UNION
ORDER BY
LIMIT
  • 執行順序
FROM
ON
JOIN
WHERE
GROUP BY
HAVING
SELECT [DISTINCT]
UNION
ORDER BY
LIMIT
  • ERD(實體關係模型)

表格Product

PK(主鍵): product_id

product_id product_name product_type sale_price purchase_price regist_date
0001 T恤衫 衣服 1000 500 2009-09-20
0002 打孔器 辦公用品 500 320 2009-09-11
0003 運動T恤 衣服 4000 2800 2009-09-20
0004 菜刀 廚房用具 3000 2800 2009-01-15
0005 高壓鍋 廚房用具 6800 5000 2009-09-20
0006 叉子 廚房用具 500 450 2008-04-28
0007 擦菜板 廚房用具 880 790 2008-05-18
0008 圓珠筆 辦公用品 100 75 2009-11-11

SELECT基礎語句

[]表示可以添加或省略的內容

  1. 語法規則
-- 部分列(AS爲別名)
SELECT product_id [AS id], product_name [AS name]
FROM Product;

-- 部分列(常數)
SELECT product_id [AS id], product_name [AS name], '2020-02-02' AS date
FROM Product;

-- 所有列
SELECT *
FROM Product;

-- 非重複行
SELECT DISTINCT product_id, product_type
FROM Product;

-- 限制結果
SELECT product_id, product_name
FROM Product
LIMIT 3;

-- 排序結果
SELECT product_id, product_name
FROM Product
ORDER BY product_id [, product_name [DESC/ASC]];

-- 過濾數據(比較和算數運算符)
SELECT product_id, sale_price
FROM Product
WHERE sale_price [[+-*/] 2] >[>=, <, <=, =, <>,] 520;

-- 過濾數據(邏輯運算符)
SELECT product_id, sale_price, product_type
FROM Product
WHERE [NOT] sale_price > 520
[AND, OR] product_type = '辦公用品';
  1. 舉例
-- 從Product表中取出“編號(product_id)和商品名稱(product_name)”的商品
SELECT product_id AS id, product_name AS name
FROM Product;

-- 從Product表中取出“編號(product_id)、商品名稱(product_name)和設置常數日期”的商品
SELECT product_id AS id, product_name AS name, '2020-02-02' AS date
FROM Product;

-- 從Product表中取出商品的所有信息
SELECT *
FROM product;

-- 從Product表中取出“編號(product_id)和商品名稱(product_name)”的商品,不包含重複的數據
SELECT DISTINCT product_id AS id, product_name AS name
FROM Product;

-- 從Product表中取出“編號(product_id)和商品名稱(product_name)”的商品,保留三行數據
SELECT product_id AS id, product_name AS name
FROM Product
LIMIT 3;

-- 從Product表中取出“編號(product_id)和商品名稱(product_name)”的商品,按編號(product_id)降序排列
SELECT product_id AS id, product_name AS name
FROM Product
ORDER BY product_id DESC;

-- 從Product表中取出“2倍銷售價格(sale_price)大於520”的商品
SELECT product_id, sale_price
FROM Product
WHERE sale_price * 2 > 520;

-- 從Product表中取出“2倍銷售價格(sale_price)大於520且商品種類(product_type)爲辦公室用品”的商品
SELECT product_id, sale_price
FROM Product
WHERE sale_price * 2 > 520
AND product_type = '辦公用品';

參考

  1. Forta, B., & 劉曉霞鐘鳴. MySQL 必知必會. 人民郵電出版社, 2009.
  2. Mick. SQL基礎教程2. 人民郵電出版社, 2017.
  3. Mick. SQL進階教程. 人民郵電出版社, 2017.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章