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 |