通用SQL数据库查询语句精华使用简介
一、 简单查询51Testing软件测试网"Ep7J\,l4^5e6^%a
dU8i;\X$kc0 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及
HLj&ovz|nj2q
i0 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。
q*x.D2}M^+^3@u`sr0
.M3?v*F/V`]%d9}0 SELECT nickname,email51Testing软件测试网-rUM"V
\ I}%P
FROM testtable
(x.ziL:Q.mLnE0 WHERE name='张三' 51Testing软件测试网k rzps6v_*TQ
51Testing软件测试网Xx8P(Zi
(一) 选择列表
/Ni3E_2{qB4{051Testing软件测试网/D#ExS-xTQ
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、
go8ei)?"x9d"s(O)W0 1、选择所有列
m _6E+}pI.^e051Testing软件测试网ml3D$P8IG%T6j;lr
例如,下面语句显示testtable表中所有列的数据:51Testing软件测试网k9vy v;X^Mf&I{v
:|vPYhu9rsW0 SELECT *51Testing软件测试网5T'N4}n0r)rTj.G,PS
FROM testtable
AEOL9{1e051Testing软件测试网 RC2]w6NJ
2、选择部分列并指定它们的显示次序51Testing软件测试网1I
m-AFwR9O
(j&iI2kx$T;M9G:R7^{0 查询结果
51Testing软件测试网P8A~^x
X7Q
例如:51Testing软件测试网t"u7vO:t\
51Testing软件测试网qdnR9z
SELECT nickname,email51Testing软件测试网`0jRd c
FROM testtable
]4]1`w)]:z0f051Testing软件测试网Y(L
^ kUgr9V
3、更改列标题
6L l%a\0|T3P|1D0
ks\ ^f]fk't2D0 在选择列表中,可重新指定列标题。定义格式为:51Testing软件测试网/w)}R:O:[1{v%x
51Testing软件测试网L#bY"M%J+E-c
列标题=列名51Testing软件测试网$u4d]X8E
列名 列标题
p$Aw&p$wt0
kd*J9h?0 如果指定的列标题不是标准的标识符格式时,应使用引号
S1SW}tp9@']051Testing软件测试网teqpb@@d
SELECT 昵称=nickname,电子邮件=email
-d*?/kFRAJ WkO0 FROM testtable 51Testing软件测试网+rq:Qk[4b M-PGnw
zuRaM5b(h0 4、删除重复行51Testing软件测试网1N,l-j'x(i/pL
51Testing软件测试网ge]2Z2r}[
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。51Testing软件测试网QW1Z4Fq!f
[
51Testing软件测试网!Hs"Kc3Q/o)P6yE:E
5、限制返回的行数51Testing软件测试网&BF!q`i
51Testing软件测试网g7b6h8Rh8^|+^h
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。
[d pAj |051Testing软件测试网4G%VpFTQ(O9E
例如:
O P$u\ l051Testing软件测试网C8bPYh
T,l-l
SELECT TOP 2 *FROM testtable SELECT TOP 20 PERCENT * FROM testtable51Testing软件测试网D!kAKk\8c
51Testing软件测试网:hD-\;Gs1y{8i
(二)FROM子句51Testing软件测试网k;ntBk
51Testing软件测试网 f)H{g)C#l$i.X
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用
51Testing软件测试网k%il7saZ-^
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:
GGtJ`6vp'C\0
4u q e(c
B8SR*c,[0 SELECT username,citytable.cityid51Testing软件测试网E$TP Kk'|U:L+x
FROM usertable,citytable51Testing软件测试网7R3KK fi a&l.\
WHERE usertable.cityid=citytable.cityid 51Testing软件测试网4BP ]L y#Z
qI~
c2i
bL0 在FROM子句中可用以下两种格式为表或视图指定
7x#|h{2pB.@;VP0
)J9~vt:Sh.W0 表名 as 别名51Testing软件测试网n8i0i:\v*b/eQ
表名 别名51Testing软件测试网X;q(p/t3J
h0u.n2SvJ`P3CF0 (二) FROM子句51Testing软件测试网.KN,_.Vbk3ujx
/p eW S8o*} D XO0 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
L&{
j$?!o#[-Hnl5iB&m051Testing软件测试网H0RyH
sF^"U)U+T
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:
Qrf5BIJQ051Testing软件测试网jx(a^{
SELECT username,citytable.cityid51Testing软件测试网-[a.Iu&s$Q4L~
FROM usertable,citytable
(jQbj5Z
b9_0 WHERE usertable.cityid=citytable.cityid 51Testing软件测试网/f zA!b2P
51Testing软件测试网bN`\*ay
在FROM子句中可用以下两种格式为表或视图指定别名:51Testing软件测试网%~P'xxfxX
51Testing软件测试网@qC#~w{8\*Lt%TZ
表名 as 别名51Testing软件测试网M.M-nS5V~G
表名 别名
q4W2lGF:j051Testing软件测试网9sS0G
Lbj"d4}'g
例如上面语句可用表的别名格式表示为:
;HvRsj#P5Sx0
Ke/TZ Y4pI0 SELECT username,b.cityid51Testing软件测试网"Wh-W;|N!F9m.lg
FROM usertable a,citytable b51Testing软件测试网%v:{&y0W