- SELECT
SELECT * FROM users WHERE gender='F' AND age < 40 ORDER BY name DESC, age ASC
SELECT name AS 姓名, age AS 年齡 FROM users (使用欄位別名)
SELECT * FROM users WHERE (name LIKE 'T%' OR name LIKE '%R') AND gender='M' (組合條件 : % 代表字串, _ 代表一個字元, # 代表 0-9 數字)
SELECT * FROM users WHERE NOT name LIKE '%介%' (否定條件)
SELECT * FROM users WHERE age BETWEEN 20 AND 60 (數值範圍)
SELECT * FROM users WHERE birthday BETWEEN #1966/1/1# AND #2012/1/23# (日期範圍)
SELECT * FROM users WHERE age IN (20,30,40,50) (列舉)
SELECT * FROM users WHERE city IN ('台北','桃園','高雄') (列舉)
SELECT TOP 50 * FROM users (選取前 50 筆)
SELECT TOP 20 PERCENT name,age FROM users (選取前 20%)
注意, MySQL 沒有 TOP 與 PERCENT 語法, TOP 必須改用 LIMIT :
SELECT * FROM users WHERE gender='F' ORDER BY age LIMIT 10
SELECT * FROM users ORDER BY age LIMIT 3,10 (從第 3 筆開始抓 10 筆)
而 PERCENT 必須用兩步驟模擬, 首先求出全部列數, 再乘以百分比得到筆數 :
$SQL="SELECT COUNT(*) FROM users";
$RS=run_sql($SQL); //執行 SQL 操作
$percent=20; //列出前百分比紀錄
if (is_array($RS)) {
$total=$RS[0][0]; //總筆數
$limit=round($percent*$total/100); //將百分比換算成筆數
$SQL="SELECT * FROM users LIMIT ".$limit;
$RS=run_sql($SQL);
...
}
SELECT DISTINCT occupation FROM users (群組 : 把相同值的合為一筆)
SELECT occupation FROM users GROUP BY occupation (群組 : 功能同上)
SELECT COUNT(*) FROM users (計算總筆數)
SELECT COUNT(age) FROM users (計算指定欄位有值之總筆數) - INSERT
INSERT INTO users(name,age,gender) VALUES('武大郎',25,'M') - UPDATE
UPDATE users SET country='台灣' (更新全部記錄)
UPDATE users SET gender='F' WHERE name='崔鶯鶯' (更新一欄)
UPDATE users SET age=23,gender='F' WHERE name='崔鶯鶯' (更新多欄) - DELETE
DELETE * FROM users (刪除全部紀錄)
DELETE * FROM users WHERE age > 30 (條件刪除)
注意, ACCESS 才需要 *, 而 MySQL 不可用 * :
DELETE FROM users (刪除全部紀錄)
DELETE FROM users WHERE age > 30 (條件刪除)
2013年1月23日 星期三
最常用的 SQL 指令
SQL 語法是我每天 WEB 開發工作中離不開的東西, 因此把這些最常用指令摘要如下, 以備忘記時查考 (記性越來越不好囉), 其實用來用去就是底下這些個, 沒啥大學問啦 :
沒有留言:
張貼留言