一、简单查询 7MoR9,(
. Jptj
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 aDN.gMS
X8i[fk1.R
表或视图、以及搜索条件等。 \FVNXUMU
B#QL M^
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 u |'8a1
k?<i*;7
SELECT nickname,email ma1(EJ/
eVrnVPkM
FROM testtable )=y.^@UT@
Q*Y4m8wY
WHERE name='张三' *q}FV2
,}u,)7
(一)选择列表 LNaeB(z"
C0gfJ~M)
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 KM 5jl9Vv
y2GQN:X
量和全局变量)等构成。 (X*'y*:
?vMK'"
1、选择所有列 /q T E
b-2pzcK{#
例如,下面语句显示testtable表中所有列的数据: q)vK`\Y
) sRN!~
SELECT * Z>X9J(=
uW )
\,
FROM testtable v: giZxR
U7jhV,gO4
2、选择部分列并指定它们的显示次序 kp'b>&9r
J9NsHr:A[
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 DQ%`v=
K4_~ruhr
例如: Wa(W&]
c$.UE
SELECT nickname,email FMoJ"6Q
0,:iE\
FROM testtable $|rCrak;
+I*k0"gj6
3、更改列标题 h]<GTWj
_cR6ik zW(
在选择列表中,可重新指定列标题。定义格式为: eR7qE) h
?0 HR(N(z!
列标题=列名 Pa3{Ds
L7X7Zt8%
列名 列标题 2XzF k_6H
cLn; ,u4
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 H3!,d`D.N
_MGNKA6JI
标题: ;9}w|!/
o1
jk=
SELECT 昵称=nickname,电子邮件=email 3xRM
1GgO
n/xXQ7y
FROM testtable 3Wjq >\
km9Gwg/zT
4、删除重复行 5BrU'NF
nWKO8C>
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 "(Mvl1^BT
>s;oOo+5
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 EV:_Kx8f P
Vp|2w lFE-
5、限制返回的行数 yZ?xt'tn
JtSuD>H`"
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 @P*ylB}?Q
~o:rM/!Ba
表示一百分数,指定返回的行数等于总行数的百分之几。 =s`XZkh
P;^y|0Nm
例如: J>&[J!>r
CR%D\I$o
SELECT TOP 2 * SL6mNn9c
Xq+!eOT
FROM testtable G%xb0%oi]%
2O?Vr"
A
SELECT TOP 20 PERCENT * eLCdAr
ll^Th >
FROM testtable C/SapX
sGXp}{E9
(二)FROM子句 uCY(:;[<
F~tm`n8Z
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, @~JB\j9
3yeK@>C
它们之间用逗号分隔。 R1II k
2b; rr
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 CW.&Y?>Tv
V*~1,6N[
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 ,h3269$J
J@oEV=L
使用下面语句格式加以限定: jVLY!7Z4
='7er.~\
SELECT username,citytable.cityid |E46vup
]ev *m&O
FROM usertable,citytable s]$HkSH
1_N~1Ik
WHERE usertable.cityid=citytable.cityid JQ~y- lt
99\{! W
在FROM子句中可用以下两种格式为表或视图指定别名: D=jSh
}@3Ud'
Y
表名 as 别名 w%>aR_G
b7?U8/#'
表名 别名 MDMtOfe|
SNQz8(O
例如上面语句可用表的别名格式表示为: 59&T