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