重点之一 —— SQL指令总结
SQL指令:Select;Distinct;Where;
And Or;In;Between;Like;OrderBy;
下面对这8个SQL指令进行一一详细介绍:
1,Select:顾名思义Select是“选择,挑选”的意思;所以此指令为:将所需数据资料从数据库表格(数据库内的结构。目的是存储资料)中选出。
格式:SELECT “栏位名” FROM “表格名”
例子:Market_Information:
Market_name
BeerToy_Sales
Quantity
明珠
¥150
10
元辰
¥120
11
朝阳
¥130
12
万达
¥140
13
题目:选出所有的超市名(Market_name)
解析:SELECT Market_name FROM Market_Information
结果:
Market_name
明珠
元辰
朝阳
万达
我们可以一次读取好几个栏位,也可以同时由好几个表格中选资料。
2,DISTICT:顾名思义Distinct是“有区别的,与其他不同的”的意思;所以此指令:找出表格中不同数据资料,将重复的资料只显示一次。(比SELECT(读取表中一个活多个栏位的所有信息)又强大一些。)
格式:SELECT DISTINCT “栏位名”
FROM “表名”
例子:Market_Information:
Market_name
BeerToy_Sales
Quantity
Data
明珠
¥150
10
2012—2—01
元辰
¥120
11
2012—3—05
朝阳
¥130
12
2012—3—04
万达
¥140
13
2012—5—16
朝阳
¥140
9
2012—7—28
题目:找出所有不同的超市名。
解析:SELECT DISTINCT Market_name FROM Market_information
结果:
Market_name
明珠
元辰
朝阳
万达
3,WHERE:顾名思义Where是“在哪里,从哪里”的意思。所以,当我们不需要表内的全部信息,而是想选择性的读取我们需要的资料时,用到此指令。
格式:SELECT “栏位名”
FROM”表格名”
WHERE”条件”
例子:Market_Information:
Market_name
BeerToy_Sales
Quantity
Data
明珠
¥150
10
2012—2—01
元辰
¥120
11
2012—3—05
朝阳
¥130
12
2012—3—04
万达
¥140
13
2012—5—16
朝阳
¥140
9
2012—7—28
题目:从表格中选取玩具熊单价超过¥130的资料。
解析:SELECT Market_name
FROM Market_Information
WHERE BeerToy_Sales > 130
结果:
Market_name
明珠
万达
朝阳
4,AND OR:顾名思义And是“并且”之意;Or是“或”之意;两者混合使用,实现较复杂功能。可以说,是WHERE指令基础上的进一步功能提升,实现了选择含有复杂条件信息的功能。(复杂条件是由2个或多个简单条件通过AND或OR的连接而成的)一个SQL语句中可以有无限多个特简单条件的存在。
格式:SELECT “栏位名”
FROM”表格名”
WHERE”简单条件”
{[AND|OR]”简单条件”}+
注:{}+代表{}之内的情况会发生一次或多次,在这里的意思就是AND”简单条件”及OR”简单条件”的情况可以发生一次货多次。可以用()来代表条件的先后次序。
例子:Market_Information:
Market_name
BeerToy_Sales
Quantity
Data
明珠
¥150
10
2012—2—01
元辰
¥120
11
2012—3—05
朝阳
¥130
12
2012—3—04
万达
¥140
13
2012—5—16
朝阳
¥140
9
2012—7—28
题目:在Market_Information表格中选出所有BeerToy_Sales大于¥140,或是在¥120及¥140之间的资料。
解析:SELECT Market_name
FROM Market_Information
WHERE BeerToy_Sales > 140
OR (BerToy_Sales < 140AND BeerToy_Sales > 120)
结果:
Market_name
明珠
朝阳
5,IN:在 SQL 中,在两个情况下会用到 IN这个指令;与 WHERE有关的那一个情况。在这个用法下,我们事先已知道至少一个我们需要的值,而我们将这些知
道的值都放入 IN这个子句。
格式:SELECT "栏位名"
FROM "表格名"
WHERE "栏位名" IN ('值一', '值二', ...)
在括号内可以有一或多个值,而不同值之间由逗点分开。值可以是数目或是文字。若在括号
内只有一个值,那这个子句就等于
WHERE "栏位名" = '值一'
例子:Market_Information:
Market_name
BeerToy_Sales
Quantity
Data
明珠
¥150
10
2012—2—01
元辰
¥120
11
2012—3—05
朝阳
¥130
12
2012—3—04
万达
¥140
13
2012—5—16
朝阳
¥140
9
2012—7—28
题目:在此表格中找出所有含盖明珠或元辰的资料
解析:SELECT *
FROM Market_Information
WHERE Market_name IN(“明珠”,”元辰”)
结果:
Market_name
BeerToy_Sales
Quantity
Data
明珠
¥150
10
2012—2—01
元辰
¥120
11
2012—3—05
6,BETWEEN:顾名思义Between是“在…之间”的意思;与IN指令不同:IN指令可以从表中按照我们的意愿和需要任意选取资料,可以是任意不连续的值。而BETWEEN指令是选取某一固定区间的资料。
格式:SELECT “栏位名”
FROM “表格名”
WHERE”栏位名”BETWEEN’值一’AND’值二’
注:此指令选出的值是包含在值一与值二之间的资料值
例子:Market_Information:
Market_name
BeerToy_Sales
Quantity
Data
明珠
¥150
10
2012—2—01
元辰
¥120
11
2012—3—05
朝阳
¥130
12
2012—3—04
万达
¥140
13
2012—5—16
朝阳
¥140
9
2012—7—28
题目:从此表格中找出介于2012—3—03及2012—5—17之间的资料。
解析:SELECT *
FROM Market_Information
WHERE Date BETWEEN ‘2012—3—04’ AND ‘2012—5—16’
结果:
Market_name
BeerToy_Sales
Quantity
Data
元辰
¥120
11
2012—3—05
朝阳
¥130
12
2012—3—04
万达
¥140
13
2012—5—16
7,LIKE:顾名思义Like有“像…的;如…”的意思。所以LIKE指令是按照一个模式来读取资料的。IN指令是有明确目标的条件查找;BETWEEN指令是在一个范围里查找;而LIKE指令:
格式:SELECT”栏位名”
FROM”表格名”
WHERE”栏位名”LIKE(模式)
Like关键字中的通配符及其含义:
通配符
含义
%
由0个或更多字符组成的任意字符串
—
任意单个字符
[]
用于指定范围,例如[a-f],表示a到f范围内的任何单个字符
[^]
表示指定范围,例如[^a-f],表示a到f范围以外的任何单个字符
Like格式
检索范围
Like‘Mc%’
以MC开头的所有字符串
Like‘%inger’
以字母inger结尾的所有字符串
Like‘_hery1’
以字母hery1结尾的所有6个字母的名称
Like‘[M-Z]inger’
以inger结尾,以从M到Z的任何单个字母开头的所有字符串
Like‘M[^c]%’
以M开头,且第二个字母不是c的所有字符串
Like‘%en%’
在任何位置包含字母en的所有字符串
例子:Market_Information:
Market_name
BeerToy_Sales
Quantity
Data
Wal-mart
¥150
10
2012—2—01
Time market
¥120
11
2012—3—05
Carrefour
¥130
12
2012—3—04
WuMart
¥140
13
2012—5—16
Newworld
¥140
9
2012—7—28
题目:查找表格中Market_name中包含‘ar’这个模式的字符串的超市资料信息。
解析:SELECT *
FROM Market_Information
WHERE Market_name LIKE ‘%ar%’
结果:
Market_name
BeerToy_Sales
Quantity
Data
Wal-mart
¥150
10
2012—2—01
Time market
¥120
11
2012—3—05
8,ORDER BY:顾名思义Order是“顺序,排序”的意思;By有“按照,通过”的意思。在这里两者连在一起是“通过/按照….排序”之意。SELECT和WHERE这两个指令只能从表格中将所需资料读取,但是不能按照我们的需求及意愿排序。
我们经常需要将读取的资料做一个一目了然的显示,比如:学生的期末总分按由高到低排序或员工级别由低到高排序。
格式:SELECT “栏位名”
FROM”表格名”
[WHERE”条件”]
ORDER BY”栏位名”[ASC,DESC]
[]表示WHERE子句可有可无。需要的话就写不需要就不写。ASC代表结果由小到大排序后列出,DESC表示结果由大到小排序后列出。默认值为ASC。
ORDER BY子句的语法:ORDER BY”栏位—”[ASC,DESC],”栏位二”[ASC,DESC]
若我们对这两个栏位都选择由小往大的话,那这个子句就会造成结果是依据 "栏位一"由小往大排。若有好几笔资料 "栏位一"的值相等,那这几笔资料就依据 "栏位二"由小往大排。
例子:Market_Information:
Market_name
BeerToy_Sales
Quantity
Data
Wal-mart
¥150
10
2012—2—01
Time market
¥120
11
2012—3—05
Carrefour
¥130
12
2012—3—04
WuMart
¥140
13
2012—5—16
Newworld
¥110
9
2012—7—28
题目:依照BeerToy_Sales栏位由大到小列出Market_Information表格中的资料。
解析:SELECT Market_name,BeerToy_Sales,Date
FROM Market_Information
ORDER BY BeerToy_Sales DESC
结果:
Market_name
BeerToy_Sales
Quantity
Data
Newworld
¥110
9
2012—7—28
Time market
¥120
11
2012—3—05
Carrefour
¥130
12
2012—3—04
WuMart
¥140
13
2012—5—16
Wal-mart
¥150
10
2012—2—01
- 1楼wangxuhebeibd昨天 14:48
- 必须 向你学习!!1