SQL SELECT 資料庫處理基本指令(一)
SQL 基本指令
常用於 SQL, Access 將資料從資料庫中的表格內選出 FROM 資料庫中的表格內選出 SELECT 需要的資料結果,Car_Data 是資料庫內的表格結構,它可以用於儲存資料,表格資料處理中,如何列出需要的資料。
下列例子中可以看到基本的 SQL 架構語法:
DISTINCT 獨特
SELECT DISTINCT s_name FROM Car_Data
例如需要列出這個 Car_Data 表格中 s_name 欄位內有哪些不同的名稱值,而且每個值出現的次數只要出現一次。
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Toyota Camry | 799000 | 2016-02-15 |
Nissan Livina | 499000 | 2016-04-15 |
Toyota Camry | 819000 | 2016-02-15 |
Suzuki Swift | 548000 | 2016-01-15 |
Honda Accord | 1068000 | 2016-03-15 |
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Toyota Camry | 799000 | 2016-02-15 |
Nissan Livina | 499000 | 2016-04-15 |
Suzuki Swift | 548000 | 2016-01-15 |
WHERE 從哪些
SELECT * FROM Car_Data WHERE s_price > 600000
例如需要列出這個 Car_Data 表格中 s_price 欄位內有哪些價格值大於 600000 時,就會需要用到 WHERE 這個指令。
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Toyota Camry | 799000 | 2016-02-15 |
Nissan Livina | 499000 | 2016-04-15 |
Toyota Camry | 819000 | 2016-02-15 |
Suzuki Swift | 548000 | 2016-01-15 |
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Toyota Camry | 799000 | 2016-02-15 |
Toyota Camry | 819000 | 2016-02-15 |
[ AND | OR ] 簡單條件
SELECT * FROM Car_Data WHERE s_price > 800000 OR (s_price < 600000 AND s_price > 500000)
例如需要列出這個 Car_Data 表格中 s_price 欄位內有哪些價格的值
大於 800000 或是在 500000 及 600000 之間的資料需要用到 WHERE 這個指令。
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Toyota Camry | 799000 | 2016-02-15 |
Nissan Livina | 499000 | 2016-04-15 |
Toyota Camry | 819000 | 2016-02-15 |
Suzuki Swift | 548000 | 2016-01-15 |
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Suzuki Swift | 548000 | 2016-01-15 |
IN 指定關鍵字
SELECT * FROM Car_Data WHERE s_name IN ('Honda Accord','Toyota Camry')
例如需要列出這個 Products_Data 表格中 s_name 欄位內有哪些指定的名稱值。在括弧內可以有一或多個值,而不同值之間由逗點分開。值可以是數目或是文字。
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Toyota Camry | 799000 | 2016-02-15 |
Nissan Livina | 499000 | 2016-04-15 |
Toyota Camry | 819000 | 2016-02-15 |
Suzuki Swift | 548000 | 2016-01-15 |
Honda Accord | 1068000 | 2016-03-15 |
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Toyota Camry | 799000 | 2016-02-15 |
Toyota Camry | 819000 | 2016-02-15 |
Honda Accord | 1068000 | 2016-03-15 |
LIKE 符合關鍵字
SELECT * FROM Car_Data WHERE s_name LIKE '%CO%'
例如需要列出這個 Products_Data 表格中 s_name 欄位內有哪些名稱值符合 CO。
'ABC%' : 所有以 'ABC' 起頭的字串。例如 'ABCD' 和 'ABCABC' 都符合這字串。'%XYZ' : 所有以 'XYZ' 結尾的字串。例如 'WXYZ' 和 'YZXYZ' 都符合這字串。'%CO%' : 所有含有 'CO'這個模式的字串。
例如 'Honda Accord' 和 'Mitsubishi Colt Plus' 都符合這個模式。
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Toyota Camry | 799000 | 2016-02-15 |
Nissan Livina | 499000 | 2016-04-15 |
Infiniti G Coupe | 2100000 | 2016-02-15 |
Suzuki Swift | 548000 | 2016-01-15 |
Mitsubishi Colt Plus | 499000 | 2016-03-15 |
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Infiniti G Coupe | 2100000 | 2016-02-15 |
Mitsubishi Colt Plus | 499000 | 2016-03-15 |
ORDER BY 排列順序
SELECT * FROM Car_Data ORDER BY s_price DESC
例如列出這個 Products_Data 表格中 s_price 欄位的由大往小列出 DESC。WHERE 子句不一定是需要的、但如果 WHERE 子句存在的話,必須是在 ORDER BY 子句之前。ASC 參數其結果會以由小往大的順序列出、DESC 參數其結果會以由大往小的順序列出。
如果兩者皆沒有被標示的話,那預設值就會用 ASC。
s_name | s_price | s_sate |
Honda Accord | 1079000 | 2016-03-15 |
Toyota Camry | 799000 | 2016-02-15 |
Nissan Livina | 499000 | 2016-04-15 |
Infiniti G Coupe | 2100000 | 2016-02-15 |
Suzuki Swift | 548000 | 2016-01-15 |
s_name | s_price | s_sate |
Infiniti G Coupe | 2100000 | 2016-02-15 |
Honda Accord | 1079000 | 2016-03-15 |
Toyota Camry | 799000 | 2016-02-15 |
Suzuki Swift | 548000 | 2016-01-15 |
Nissan Livina | 499000 | 2016-04-15 |