当前位置: 代码迷 >> SQL >> 着重点之一 —— SQL指令总结
  详细解决方案

着重点之一 —— SQL指令总结

热度:103   发布时间:2016-05-05 14:14:19.0
重点之一 —— SQL指令总结

   SQL指令:SelectDistinctWhere

              

            And OrInBetweenLikeOrderBy 

 

下面对这8SQL指令进行一一详细介绍:

 

 

1Select顾名思义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

明珠

元辰

朝阳

万达

      我们可以一次读取好几个栏位,也可以同时由好几个表格中选资料。

2DISTICT顾名思义Distinct是“有区别的,与其他不同的”的意思;所以此指令:找出表格中不同数据资料,将重复的资料只显示一次。(比SELECT(读取表中一个活多个栏位的所有信息)又强大一些。)

格式:SELECT DISTINCT “栏位名

      FROM “表名

例子:Market_Information

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

11

2012305

朝阳

130

12

2012304

万达

140

13

2012516

朝阳

140

9

2012728

  题目:找出所有不同的超市名。

  解析:SELECT DISTINCT Market_name FROM Market_information

  结果:

Market_name

明珠

元辰

朝阳

万达

3WHERE:顾名思义Where是“在哪里,从哪里”的意思。所以,当我们不需要表内的全部信息,而是想选择性的读取我们需要的资料时,用到此指令。

格式:SELECT “栏位名

FROM”表格名

WHERE”条件

例子:Market_Information

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

11

2012305

朝阳

130

12

2012304

万达

140

13

2012516

朝阳

140

9

2012728

 

题目:从表格中选取玩具熊单价超过¥130的资料。

 解析:SELECT Market_name

       FROM Market_Information

       WHERE BeerToy_Sales > 130 

 结果:

       

Market_name

明珠

万达

朝阳

4AND OR顾名思义And是“并且”之意;Or是“或”之意;两者混合使用,实现较复杂功能。可以说,是WHERE指令基础上的进一步功能提升,实现了选择含有复杂条件信息的功能。(复杂条件是由2个或多个简单条件通过ANDOR的连接而成的)一个SQL语句中可以有无限多个特简单条件的存在。

  格式:SELECT “栏位名

        FROM”表格名

        WHERE”简单条件

        {[AND|OR]”简单条件”}+

 注:{}+代表{}之内的情况会发生一次或多次,在这里的意思就是AND”简单条件OR”简单条件的情况可以发生一次货多次。可以用()来代表条件的先后次序。

例子:Market_Information

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

11

2012305

朝阳

130

12

2012304

万达

140

13

2012516

朝阳

140

9

2012728

 题目: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

明珠

朝阳

5IN SQL 中,在两个情况下会用到 IN这个指令;与 WHERE有关的那一个情况。在这个用法下,我们事先已知道至少一个我们需要的值,而我们将这些知

道的值都放入 IN这个子句。

格式:SELECT "栏位名"

FROM "表格名"

WHERE "栏位名" IN ('值一', '值二', ...)

在括号内可以有一或多个值,而不同值之间由逗点分开。值可以是数目或是文字。若在括号

内只有一个值,那这个子句就等于

WHERE "栏位名" = '值一'

例子:Market_Information

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

11

2012305

朝阳

130

12

2012304

万达

140

13

2012516

朝阳

140

9

2012728

   题目:在此表格中找出所有含盖明珠或元辰的资料

解析:SELECT *

     FROM Market_Information

     WHERE Market_name IN(“明珠元辰”)

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

11

2012305

6BETWEEN顾名思义Between是“在之间”的意思;与IN指令不同:IN指令可以从表中按照我们的意愿和需要任意选取资料,可以是任意不连续的值。而BETWEEN指令是选取某一固定区间的资料。

格式:SELECT “栏位名

     FROM “表格名

     WHERE”栏位名”BETWEEN’值一’AND’值二

注:此指令选出的值是包含在值一与值二之间的资料值

例子:Market_Information

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

11

2012305

朝阳

130

12

2012304

万达

140

13

2012516

朝阳

140

9

2012728

题目:从此表格中找出介于20123032012517之间的资料。

解析:SELECT *

     FROM Market_Information

 WHERE Date BETWEEN ‘2012304’ AND ‘2012516’

结果:

  

Market_name

BeerToy_Sales

Quantity

Data

元辰

120

11

2012305

朝阳

130

12

2012304

万达

140

13

2012516

7LIKE:顾名思义Like有“像的;如”的意思。所以LIKE指令是按照一个模式来读取资料的。IN指令是有明确目标的条件查找;BETWEEN指令是在一个范围里查找;而LIKE指令:

  格式:SELECT”栏位名

        FROM”表格名

        WHERE”栏位名”LIKE(模式)

Like关键字中的通配符及其含义:

  

通配符

含义

%

0个或更多字符组成的任意字符串

任意单个字符

[]

用于指定范围,例如[a-f],表示af范围内的任何单个字符

[^]

表示指定范围,例如[^a-f],表示af范围以外的任何单个字符

 

Like格式

检索范围

LikeMc%

MC开头的所有字符串

Like%inger

以字母inger结尾的所有字符串

Like_hery1

以字母hery1结尾的所有6个字母的名称

Like[M-Z]inger

inger结尾,以从MZ的任何单个字母开头的所有字符串

LikeM[^c]%

M开头,且第二个字母不是c的所有字符串

Like%en%

在任何位置包含字母en的所有字符串

例子:Market_Information

Market_name

BeerToy_Sales

Quantity

Data

Wal-mart

150

10

2012201

Time market

120

11

2012305

Carrefour

130

12

2012304

WuMart

140

13

2012516

Newworld

140

9

2012728

 题目:查找表格中Market_name中包含‘ar’这个模式的字符串的超市资料信息。

 解析:SELECT *

       FROM Market_Information

       WHERE Market_name LIKE ‘%ar%’

 结果:

     

Market_name

BeerToy_Sales

Quantity

Data

Wal-mart

150

10

2012201

Time market

120

11

2012305

8ORDER BY:顾名思义Order是“顺序,排序”的意思;By有“按照,通过”的意思。在这里两者连在一起是“通过/按照….排序”之意。SELECTWHERE这两个指令只能从表格中将所需资料读取,但是不能按照我们的需求及意愿排序。

我们经常需要将读取的资料做一个一目了然的显示,比如:学生的期末总分按由高到低排序或员工级别由低到高排序。

 格式: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

2012201

Time market

120

11

2012305

Carrefour

130

12

2012304

WuMart

140

13

2012516

Newworld

110

9

2012728

  题目:依照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

2012728

Time market

120

11

2012305

Carrefour

130

12

2012304

WuMart

140

13

2012516

Wal-mart

150

10

2012201

 

 

 

 

 

 

 

 

 

 

 

 

       

1楼wangxuhebeibd昨天 14:48
必须 向你学习!!1
  相关解决方案