MySQL 語法
Published in
3 min readSep 13, 2021
記錄一些 MySQL 語法,方便自己之後查看
資料庫操作
建立 資料庫
CREATE DATABASE 資料庫名;
列出現有資料庫
SHOW DATABASES;
使用資料庫
USE 資料庫名;
刪除資料表
DROP TABLE 資料表名;
刪除資料庫
DROP DATABASE 資料庫名;
查詢資料庫
SELECT… FROM… 列出資料表所有資料
SELECT * FROM 資料表名;
若要列出特定欄位
SELECT 欄位名 FROM 資料表名;例
SELECT name FROM user;
列出多重欄位
SELECT 欄位名1, 欄位名2... FROM 資料表名;
DISTINCT 列出欄位資料 ( 排除重複資料 )
SELECT DISTINCT 欄位名 FROM 資料表名;
WHERE 使用條件查詢資料
SELECT 欄位名 FROM 資料表名 WHERE 條件例
SELECT age FROM user WHERE age > 18;
NULL、 NOT NULL 查詢欄位是否為空值
SELECT... FROM 資料表名 WHERE 欄位名 IS NULL;
SELECT... FROM 資料表名 WHERE 欄位名 IS NOT NULL;
AS 替欄位取設定條件後取別名呈現在列表
SELECT name, age, age >= 20 AS adult FROM user WHERE age >= 20;
AND、OR、NOT 篩選條件
判斷優先順序 NOT > AND > OR
WHERE 條件1 AND 條件2;
WHERE 條件1 OR 條件2;
WHERE NOT 條件;
在多重邏輯下,會利用括號做運算順序標記
SELECT name, age, gender, height FROM user
WHERE gender = "男"
AND ( age >= 18 OR height >= 180 );
BETWEEN 指定查詢範圍
WHERE 欄位名 BETWEEN value1 AND value2;
IN、NOT IN 縮短條件描述
若是對相同欄位重複查詢的話,可將條件做一次查詢
原本使用 OR
WHERE id = 'A001' OR id = 'A002' OR id = 'A003';
使用 IN 寫法縮短後
WHERE id IN ('A001', 'A002', 'A003');
NOT 也是一樣,只是去除不要的
WHERE id NOT IN ('A001', 'A002', 'A003');
模糊查詢
使用萬用字元 % 、 _
% 代表 0 個字元以上的任何字串
_ 代表任何一個字元
LIKE 查詢特定字串資料
LIKE 查詢搭配萬用字元為"相當於"
一般的 LIKE 查詢為"等於"
WHERE name LIKE '王%' # 查詢姓名為 '王XX' 的會員WHERE name LIKE '%明' # 查詢姓名為 'XX明' 的會員WHERE name LIKE '%小%' # 查詢姓名為 'X小X' 的會員WHERE name LIKE '王_' # 查詢姓名為 '王X' 的會員
NOT LIKE 查詢不包含特定字串資料
WHERE name NOT LIKE '王%' # 查詢姓名不包含 '王XX' 的會員WHERE name LIKE '王_' # 查詢姓名不包含 '王X' 的會員
以上資料如有錯誤,歡迎交流更正。