程式語法SQL SELECT 資料庫處理基本指令 (一)

SQL SELECT 資料庫處理基本指令(一)

基本指令

常用於將資料從資料庫中的表格內選出,FROM 資料庫中的表格內選出 SELECT 需要的資料,Car_Data 表格是一個資料庫內的結構,它的目的是儲存資料,表格處理中,如何列出需要的資料。

下列例子中可以看到基本的 SQL 架構語法:

DISTINCT

SELECT DISTINCT s_name FROM Car_Data

例如需要列出這個 Car_Data 表格中 s_name 欄位內有哪些不同的名稱值,而且每個值出現的次數只要出現一次。

s_names_prices_sate
Honda Accord10790002010-03-15
Toyota Camry7990002010-02-15
Nissan Livina4990002010-04-15
Toyota Camry8190002010-02-15
Suzuki Swift5480002010-01-15
Honda Accord10680002010-03-15
s_names_prices_sate
Honda Accord10790002010-03-15
Toyota Camry7990002010-02-15
Nissan Livina4990002010-04-15
Suzuki Swift5480002010-01-15

WHERE

SELECT * FROM Car_Data WHERE s_price > 600000

例如需要列出這個 Car_Data 表格中 s_price 欄位內有哪些價格值大於 600000 時,就會需要用到 WHERE 這個指令。

s_names_prices_sate
Honda Accord10790002010-03-15
Toyota Camry7990002010-02-15
Nissan Livina4990002010-04-15
Toyota Camry8190002010-02-15
Suzuki Swift5480002010-01-15
s_names_prices_sate
Honda Accord10790002010-03-15
Toyota Camry7990002010-02-15
Toyota Camry8190002010-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 或是在 500000600000 之間的資料需要用到 WHERE 這個指令。

s_names_prices_sate
Honda Accord10790002010-03-15
Toyota Camry7990002010-02-15
Nissan Livina4990002010-04-15
Toyota Camry8190002010-02-15
Suzuki Swift5480002010-01-15
s_names_prices_sate
Honda Accord10790002010-03-15
Suzuki Swift5480002010-01-15

IN

SELECT * FROM Car_Data WHERE s_name IN ('Honda Accord','Toyota Camry')

例如需要列出這個 Products_Data 表格中 s_name 欄位內有哪些指定的名稱值。在括弧內可以有一或多個值,而不同值之間由逗點分開。值可以是數目或是文字。

s_names_prices_sate
Honda Accord10790002010-03-15
Toyota Camry7990002010-02-15
Nissan Livina4990002010-04-15
Toyota Camry8190002010-02-15
Suzuki Swift5480002010-01-15
Honda Accord10680002010-03-15
s_names_prices_sate
Honda Accord10790002010-03-15
Toyota Camry7990002010-02-15
Toyota Camry8190002010-02-15
Honda Accord10680002010-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_names_prices_sate
Honda Accord10790002010-03-15
Toyota Camry7990002010-02-15
Nissan Livina4990002010-04-15
Infiniti G Coupe21000002010-02-15
Suzuki Swift5480002010-01-15
Mitsubishi Colt Plus4990002010-03-15
s_names_prices_sate
Honda Accord10790002010-03-15
Infiniti G Coupe21000002010-02-15
Mitsubishi Colt Plus4990002010-03-15

ORDER BY

SELECT * FROM Car_Data ORDER BY s_price DESC

例如列出這個 Products_Data 表格中 s_price 欄位的由大往小列出 DESCWHERE 子句不一定是需要的、但如果 WHERE 子句存在的話,必須是在 ORDER BY 子句之前。ASC 參數其結果會以由小往大的順序列出、DESC 參數其結果會以由大往小的順序列出。

如果兩者皆沒有被寫出的話,那預設值就會用 ASC

s_names_prices_sate
Honda Accord10790002010-03-15
Toyota Camry7990002010-02-15
Nissan Livina4990002010-04-15
Infiniti G Coupe21000002010-02-15
Suzuki Swift5480002010-01-15
s_names_prices_sate
Infiniti G Coupe21000002010-02-15
Honda Accord10790002010-03-15
Toyota Camry7990002010-02-15
Suzuki Swift5480002010-01-15
Nissan Livina4990002010-04-15