Structured Query Language SQL 基本用法

SELECT
SELECT field FROM table;

常用的 SQL 指令

英文不會區分大小寫

SELECT
由資料庫取出特定的資料 (records) 。
INSERT
新增資料到資料庫。
UPDATE
更改資料庫內特定的資料。
DELETE
移除資料庫內特定的資料。

細節的表述

FROM
指出資料來源。
WHERE
設定條件篩選資料集。
ORDER BY … DESC
指定以特定的排序方式列出資料集 (recordset) ,加 DESC 指定為降冪排列,沒有指定表示升冪排列。
GROUP BY … HAVING
指定以特定的方式組合資料集。

設定篩選條件的運算子

=
等於
LIKE
包含類似
<>
不等於
NOT LIKE
不包含類似
<
小於
>
大於
<=
小於等於
>=
大於等於
AND
兩側條件同時成立
OR
兩側之一側條件成立
NOT
排除特定條件
BETWEEN…AND…
於兩個條件之間
IS NULL
NULL 為特殊資料型式,不適於使用 = 作比較。
IS NOT NULL
NULL 為特殊資料型式,不適於使用 <> 作比較。

符合模式 (pattern matching)

使用萬用字元 (wildcards)

*
可表示資料表中的所有欄位。
%
配合其它字元表示多個任意字元。
_
表示單一任意字元。
語法實例
SELECT field1,field2,field3 FROM table1;
SELECT * FROM table1;
SELECT field1,field2 FROM table1 WHERE field3>1000;
SELECT field1,field3 FROM table1 WHERE field5 LIKE 'A%';
SELECT field1,field2 FROM table1 WHERE field6 LIKE 'home' AND field7 LIKE 'city';
SELECT field1,field2 FROM table1 ORDER BY field3;
SELECT field1,field2 FROM table1 ORDER BY field3 DESC, field2;
SELECT field1,field2 FROM table1 GROUP BY field1 HAVING field3>100; 
SELECT field1,field2 FROM table1,table2 WHERE table1.id=table2.id;
SELECT field1,field2 FROM table1 JOIN table2 ON table1.id=table2.id;
INSERT INTO table1 VALUES(value1,value2,value3,…);
INSERT INTO table1(field1,field2,field3,…) VALUES(value1,value2,value3,…);
UPDATE table1 SET field1=value1,field2=value2,… WHERE field3=value3;
DELETE FROM table1 WHERE field2=value2 AND field3=value3;

加入函數運算。

SELECT name, birth, CURDATE(), (YEAR(CURDATE())-YEAR(birth)) - (RIGHT(CURDATE(),5) < RIGHT(birth,5)) AS age FROM contactbook
SELECT name, birth FROM contactbook WHERE MONTH(birth) = MONTH(DATE_ADD(CURDATE(),INTERVAL 1 MONTH))
SELECT name, birth FROM contactbook WHERE MONTH(birth) = MOD(MONTH(CURDATE()), 12) + 1
CURDATE() = CURRENT_DATE = CURRENT_DATE()
CURTIME() = CURRENT_TIME = CURRENT_TIME()

更新日期:

© 不惑仔 2011 起