读书人

着重点之一 SQL指令总结

发布时间: 2012-09-08 10:48:07 作者: rapoo

重点之一 —— 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

读书人网 >SQL Server

热点推荐