一、 简单查询 sXtt$HID=
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 ff=RKKnN
k5*Z@a
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 A|GsbRuy
SwaMpNXL
SELECT nickname,email VV sE]7P ]
FROM testtable `R!2N4|;
WHERE name='张三' FEX67A8/;
y|NY,{:]
(一) 选择列表 W@i|=xS?
MO|Pv j~[
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 0#ON}l)>
J(A+mYr{:
1、选择所有列 KFy|,@NI
x![G'I
例如,下面语句显示testtable表中所有列的数据: mo,"3YW
a54S,}|
SELECT * na
0Zb
FROM testtable xk3)#*
qQ1D }c@
2、选择部分列并指定它们的显示次序 _ q
AT%.
~f( #S*Ic
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 "!uS!BI?
T5}5uk9
例如: g|h;*
cVYu(ssC4
SELECT nickname,email $"k1^&&E
FROM testtable 6q7jI
)l
s@Loax6@B
3、更改列标题 nFe
@}uo:b:Q
在选择列表中,可重新指定列标题。定义格式为: "{3MXAFe
*~w?@,}
列标题=列名 JvaHH!>d/
列名 列标题 %e_){28 n
Mc,p]{<<AV
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: b,'rz04^
db}lN
SELECT 昵称=nickname,电子邮件=email 7HL23Vrk
FROM testtable L X #.
4、删除重复行 *Wcq'S
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 aC<fzUD;
5HTY ~&C
5、限制返回的行数 lwo,D}
B B^81{A
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 :qV|rih_Q
jS5K:yx<
例如: '#~Sb8
z6h/C{
SELECT TOP 2 * <y"lL>JR
FROM testtable %o`Cp64`Q
SELECT TOP 20 PERCENT * sDu&9+
FROM testtable +vPCr&40
f9hH{(A
(二)FROM子句 Zm(}~C29
23opaX5V=
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 @V@<j)3P
,4}s 1J#
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: p%/lP{
IxY!.d_s|~
SELECT username,citytable.cityid :U]Pm:ivTU
FROM usertable,citytable |HPb$#i
WHERE usertable.cityid=citytable.cityid E/D@;Ym18
在FROM子句中可用以下两种格式为表或视图指定别名: 3wfJ!z-E8
vkW;qt}yO
表名 as 别名 'C;KNc
表名 别名 }VVtv1
a t=;}}X
(二) FROM子句 $. sTb
e'=#G$S?g
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 W#wC
@v.?z2h
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: Bu{%mm(
3ZvQUH/{W
SELECT username,citytable.cityid v{8r46Y~Z)
FROM usertable,citytable maV*+!\
WHERE usertable.cityid=citytable.cityid a`Q-5*\;z
在FROM子句中可用以下两种格式为表或视图指定别名: 9Z3Vf[n5\
eO{2rV45O
表名 as 别名 ;)sC{ "Jb
表名 别名 5 L-6@@/
例如上面语句可用表的别名格式表示为: fvG4K(
L_!}R
SELECT username,b.cityid :%U
lNk
FROM usertable a,citytable b w2K>k/v{-
WHERE a.cityid=b.cityid ytV4qU82G
t3!~=U
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 ~$7YEs)
0f;|0siTAm
例如: HLh]*tQG
^a#W|-:
SELECT a.au_fname+a.au_lname 4hn'b[
FROM authors a,titleauthor ta ntZHO}'
(SELECT title_id,title a!PN`N28
8Z
0@-8vi
FROM titles )1O|+m k
WHERE ytd_sales>10000 q-e3;$
) AS t CZ(fP86e
WHERE a.au_id=ta.au_id T\Jm=+]c!
AND ta.title_id=t.title_id Owh:(EJ"d
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。