一、简单查询 DK&J"0jz,
1Xt%O86
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 [$]vi`c2
d;9 X1`"
表或视图、以及搜索条件等。 QOEcp% 6I}
a*NcL(OC
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 6N :fq
PR{?l
SELECT nickname,email d"Hh9O}6
U8?QyG
2A
FROM testtable ; @-7'%(C
2ME3= C
WHERE name='张三' PE|_V
d>)*!l2,C
(一)选择列表 4rc4}Yu,JI
STL_#|[RM
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 Q~#udEajI
5pI2G
量和全局变量)等构成。 `3SY~&X
7z)Hq./3@
1、选择所有列 BE:HO^-.1
w8kp6_i'
例如,下面语句显示testtable表中所有列的数据: 7\rz*
=\ iV=1iB
SELECT * 6^s=25>p
vR3'B3y
FROM testtable 5<GC
- ~T LI&[
2、选择部分列并指定它们的显示次序 7d]}BLpjWz
:xm,Ok
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 +tkDT@ `
,sn
?V~)
例如: x}i:nLhL
\&`S~c V9
SELECT nickname,email b/Z=FS2T
t`o-HWfS.
FROM testtable xD,BlDV
0ym>Hbax)
3、更改列标题 B4r4PSB>!
R^<li;Km
在选择列表中,可重新指定列标题。定义格式为: CbVU z<
MVs@~=
列标题=列名 xJa
0g,;Yzm
列名 列标题 Nj5Mc>_
'mXf8
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 3u^U\xB
yJ c#y
标题: 5(^&0c>P
b<P9@h~:
SELECT 昵称=nickname,电子邮件=email Q.>@w<[!L
B?`Gs^Y{z
FROM testtable O[U^{~iM
75u/'0~5
4、删除重复行 mQhI"3!f
}Ry:})
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 S4aN7.'Q
7;jwKA;k
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 Kp'_lKW)]q
2%'{f
5、限制返回的行数 <La$'lG4J
-hiG8%l5
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 n#Q ;bSw
O; 7`*}m
表示一百分数,指定返回的行数等于总行数的百分之几。 3s<~}&"
zt/b S/
例如: p#wQW[6
(/Lo44wT
SELECT TOP 2 * W,9. z%
$l@nk@
FROM testtable e;GLPB
c
Owa^;
SELECT TOP 20 PERCENT * RSC^R}a5
<^c?M[j
FROM testtable y[:\kI
:hr% 6K7
(二)FROM子句 dlmF?N|EC
% 4|*
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, gHpA@jdC*
18f!k
它们之间用逗号分隔。 :W6`{Z
hOw
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 S.pL^Ru
ecDni>W
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 V9&7K65-1
kU{+@MA;
使用下面语句格式加以限定: @E;'Ffo
Tw*:Vw
SELECT username,citytable.cityid mSF>~D1_
VW: WB.K$
FROM usertable,citytable 0tyoH3o/d
z SDRZ!
WHERE usertable.cityid=citytable.cityid 4r&D