SQL SELECT 资料库处理基本指令(一)

SQLSELECT

SQL 基本指令

常用于 SQL, Access 将资料从资料库中的表格内选出 FROM 资料库中的表格内选出 SELECT 需要的资料结果,Car_Data 是资料库内的表格结构,它可以用于储存资料,表格资料处理中,如何列出需要的资料。

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

DISTINCT 独特

SELECT DISTINCT s_name FROM Car_Data

例如需要列出这个 Car_Data 表格中 s_name 栏位内有哪些不同的名称值,而且每个值出现的次数只要出现一次。

s_names_prices_sate
Honda Accord10790002016-03-15
Toyota Camry7990002016-02-15
Nissan Livina4990002016-04-15
Toyota Camry8190002016-02-15
Suzuki Swift5480002016-01-15
Honda Accord10680002016-03-15
s_names_prices_sate
Honda Accord10790002016-03-15
Toyota Camry7990002016-02-15
Nissan Livina4990002016-04-15
Suzuki Swift5480002016-01-15

WHERE 从哪些

SELECT * FROM Car_Data WHERE s_price > 600000

例如需要列出这个 Car_Data 表格中 s_price 栏位内有哪些价格值大于 600000 时,就会需要用到 WHERE 这个指令。

s_names_prices_sate
Honda Accord10790002016-03-15
Toyota Camry7990002016-02-15
Nissan Livina4990002016-04-15
Toyota Camry8190002016-02-15
Suzuki Swift5480002016-01-15
s_names_prices_sate
Honda Accord10790002016-03-15
Toyota Camry7990002016-02-15
Toyota Camry8190002016-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 Accord10790002016-03-15
Toyota Camry7990002016-02-15
Nissan Livina4990002016-04-15
Toyota Camry8190002016-02-15
Suzuki Swift5480002016-01-15
s_names_prices_sate
Honda Accord10790002016-03-15
Suzuki Swift5480002016-01-15

IN 指定关键字

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

例如需要列出这个 Products_Data 表格中 s_name 栏位内有哪些指定的名称值。在括弧内可以有一或多个值,而不同值之间由逗点分开。值可以是数目或是文字。

s_names_prices_sate
Honda Accord10790002016-03-15
Toyota Camry7990002016-02-15
Nissan Livina4990002016-04-15
Toyota Camry8190002016-02-15
Suzuki Swift5480002016-01-15
Honda Accord10680002016-03-15
s_names_prices_sate
Honda Accord10790002016-03-15
Toyota Camry7990002016-02-15
Toyota Camry8190002016-02-15
Honda Accord10680002016-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 Accord10790002016-03-15
Toyota Camry7990002016-02-15
Nissan Livina4990002016-04-15
Infiniti G Coupe21000002016-02-15
Suzuki Swift5480002016-01-15
Mitsubishi Colt Plus4990002016-03-15
s_names_prices_sate
Honda Accord10790002016-03-15
Infiniti G Coupe21000002016-02-15
Mitsubishi Colt Plus4990002016-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 Accord10790002016-03-15
Toyota Camry7990002016-02-15
Nissan Livina4990002016-04-15
Infiniti G Coupe21000002016-02-15
Suzuki Swift5480002016-01-15
s_names_prices_sate
Infiniti G Coupe21000002016-02-15
Honda Accord10790002016-03-15
Toyota Camry7990002016-02-15
Suzuki Swift5480002016-01-15
Nissan Livina4990002016-04-15