» 网友学堂 » MSSQL教程 » SQL循序渐进(3)数据检索 -> 查看 2007年02月20日 更新
SQL循序渐进(3)数据检索
作者:问天 发表时间:2007-2-20 12:02 阅读:350次 在百度搜索相关内容

数据检索
在SQL中SELECT语句通常用于检索数据库,或者检索满足你设定条件的数据,以下是简单的SELECT语句的格式:
select "column1"[,"column2",etc] from "tablename"
[where "condition"];
[color=#FFFFFF'][/color]

[] = optional
[color=#FFFFFF'][/color]

其中列的名字跟着SELECT关键字,它决定了哪一列将被作为结果返回。你可以任意指定多个列,或者你可以使用"*"来选择所有的列。
表的名字是紧跟着FROM关键字的,它指出了哪个表格将作为最后结果被查询。
而WHERE子句(可选)指出哪个数据或者行将被返回或者显示,它是根据关键字WHERE后面描述的条件而来的。
在WHERE子句中可以有以下的条件选择:
[color=#FFFFFF'][/color]

= 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
<> 不等于
LIKE 参见以下注释
注释:LIKE 模式匹配操作符同样可以使用在WHERE子句的条件条件中。LIKE是一个功能强大的操作符,它可以让你选择你"喜欢"指定的行。百分号"%" 可以被用来匹配任何可能的字符,它可以出现在指定字符的前面或者后面,例如:
select first, last, city
from empinfo
[color=#FFFFFF'][/color]

where first LIKE 'Er%';
以上这条SQL语句将会匹配任何名字以'Er'开始的名字,这里必须使用单引号。
或者你也可以使用"%"在字符的前面,例如:
select first, last
from empinfo
where last LIKE '%s';
这条SQL语句将会匹配任何名字以's'结尾的名字。这个"%"的作用就跟DOS命令的"*"号很相似。
[color=#FFFFFF'][/color]

select * from empinfo
[color=#FFFFFF'][/color]

where first = 'Eric';
以上的SQL语句只选择first名字为'Eric'的行。
这里有一个名为"empinfo"的表:






first

[color=#FFFFFF'][/color]



last



id

[color=#FFFFFF'][/color]



age



city



province




Zhang



Jiangsheng



95123043



23



汕头



广东




Huang



Weidong

[color=#FFFFFF'][/color]



98122001



23



深圳

[color=#FFFFFF'][/color]



广东

[color=#FFFFFF'][/color]




Li



Simin



98111234



34



珠海



广东




Zhang



Sanmei



99232211

[color=#FFFFFF'][/color]



26

[color=#FFFFFF'][/color]



厦门



福建

[color=#FFFFFF'][/color]




Jiang



Dongsheng



98000190



28



重庆

[color=#FFFFFF'][/color]



四川

[color=#FFFFFF'][/color]




Liu



Tongxin



97231231



31



海南



海南


下面我们使用SELECT语句来进行一些检索:
首先你可以从empinfo中检索出列为first、last、city的数据,语句如下:
select first, last, city from empinfo;
这时候你将来得到以下的数据:






first



last



id

[color=#FFFFFF'][/color]




Zhang



Jiangsheng



95123043




Huang



Weidong



98122001




Li



Simin



98111234




Zhang

[color=#FFFFFF'][/color]



Sanmei

[color=#FFFFFF'][/color]



99232211




Jiang



Dongsheng



98000190




Liu

[color=#FFFFFF'][/color]



Tongxin



97231231

如果你使用以下语句:
select last, city, age from empinfo
where age > 30;
那就检索到以下的数据:





last



city

[color=#FFFFFF'][/color]



age

[color=#FFFFFF'][/color]




Simin

[color=#FFFFFF'][/color]



汕头



34

[color=#FFFFFF'][/color]




Tongxin



海南



31

若是使用:
select first, last, city, province from empinfo
where first LIKE 'J%';
将得到以下的数据:
[color=#FFFFFF'][/color]






first

[color=#FFFFFF'][/color]



last

[color=#FFFFFF'][/color]



city



Province




Jiang



Dongsheng



重庆



四川



[color=#FFFFFF'][/color]



你如果想列出所有的数据,可以使用以下的语句:
select * from empinfo;
这时候检索到的数据为:





first



last



id



age



city

[color=#FFFFFF'][/color]



province

[color=#FFFFFF'][/color]




Zhang

[color=#FFFFFF'][/color]



Jiangsheng

[color=#FFFFFF'][/color]



95123043



23



汕头




广东




Huang



Weidong

[color=#FFFFFF'][/color]



98122001



23



深圳



广东




Li



Simin

[color=#FFFFFF'][/color]



98111234



34



珠海



广东

[color=#FFFFFF'][/color]




Zhang



Sanmei



99232211



26



厦门



福建




Jiang



Dongsheng

[color=#FFFFFF'][/color]



98000190



28

[color=#FFFFFF'][/color]



重庆



四川




Liu



Tongxin



97231231



31



海南



海南

如果你想查询first和last列中last的最后字符为'g'的数据,你可以使用:
[color=#FFFFFF'][/color]

select first, last, from empinfo
[color=#FFFFFF'][/color]

where last LIKE '%g';
[color=#FFFFFF'][/color]

此时查询到的数据有:





first

[color=#FFFFFF'][/color]



last




Zhang

[color=#FFFFFF'][/color]



Jiangsheng

[color=#FFFFFF'][/color]




Huang



Weidong

[color=#FFFFFF'][/color]




Jiang

[color=#FFFFFF'][/color]



Dongsheng

你还可以这样来从first、last和age列中来查询last中间有'sh'字符的数据:
select first, last, age from empinfo
where last LIKE '%sh%';
结果为:





first



last

[color=#FFFFFF'][/color]



age




Zhang



Jiangsheng

[color=#FFFFFF'][/color]



23




Jiang



Dongsheng



28

最后,你还可以查询first为'Jiang'的数据:
select * from empinfo where first = 'Jiang';
[color=#FFFFFF'][/color]

结果为:
[color=#FFFFFF'][/color]






first



last



id

[color=#FFFFFF'][/color]



age



city



province

[color=#FFFFFF'][/color]




Jiang

[color=#FFFFFF'][/color]



Dongsheng



98000190



28



重庆



四川

好吧,为了让你对本节教程能更好的掌握,下面给你几个练习巩固巩固:
1 显示first和age列的每一个表中数据
2 显示first、last和city列中除了first=Jiang的所有表中的数据。
[color=#FFFFFF'][/color]

3 显示所有age大于30的列的数据。
[color=#FFFFFF'][/color]

4 显示first和last列中last是以"g"结尾的数据。
5 显示所有first为"Zhang"的列
千万不要认为这些很简单而不作练习。因此这些都是基础,打好基础对于以后的学习是有帮助的。

#Advertisement