一、 简单查询 -d1 YG[1|
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 O]3$$uI=QE
#I8)|p?P
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 VHyH't_&s
&&T\PspM
SELECT nickname,email R/ix,GC
FROM testtable >HNBTc=~t
WHERE name='张三' ;)$bhNFHx
+O"!*
(一) 选择列表 Kh&W\\K
<+Eu.K&
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 fGjYWw
E)sC:oO
1、选择所有列 v=5H,4UMA
KCP$i@Pjv
例如,下面语句显示testtable表中所有列的数据: %hDx UZ#0
_E'F
SELECT * 2qd5iOhX+
FROM testtable K|L&mL&8
&pHSX
2、选择部分列并指定它们的显示次序 @=_4i&]$
Y*VF1M,2_
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 <<'%2q5
&3gC&b^i
例如: I+2#k\y
{g9*t}l4
SELECT nickname,email de=){.7Y
FROM testtable
=&T%Jm}
t57MKDn
3、更改列标题 ly[j=vBV
elJ?g
&"
在选择列表中,可重新指定列标题。定义格式为: l XpbAW
eI,'7u4q
列标题=列名 @7HHi~1JK
列名 列标题 N\l|3~
rEHlo[7^
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: -7Bg5{FA
RGgePeaw
SELECT 昵称=nickname,电子邮件=email Ztl?*zL
FROM testtable M^ZEAZi
4、删除重复行 Ab
#}BHI
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 C5Vlqc;
%1mIngW=g
5、限制返回的行数 B>}B{qi|
8n/8uRIR
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 C/?x`2'
3AcS$.G
例如: ~4+ICCbH
R ;k1(p
SELECT TOP 2 * {S@gjMuN
FROM testtable 9Y:Iha`$w
SELECT TOP 20 PERCENT * {SF'YbY
FROM testtable =pZ$oTR
C2CR#b=)i
(二)FROM子句 C{:U<q
1Ep7CV-n}
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 \9fJ)*-
ov<vSc<u
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: m*wDJEKo
ce3``W/H3
SELECT username,citytable.cityid \JC_"gqt
FROM usertable,citytable N\"Hf=Y(~
WHERE usertable.cityid=citytable.cityid rB-R(2
CCN
在FROM子句中可用以下两种格式为表或视图指定别名: nA(5p?D+YB
O1@3V/.Wu
表名 as 别名 DS+BX`i%#p
表名 别名 O=vD6@QI
n%;4Fm?
(二) FROM子句 #
0d7
EERCb%M8Z
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 ~|[i64V<^
U'^ G-@
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: .}GOHW)}
_%3p&1ld
SELECT username,citytable.cityid 0nvT}[\H*
FROM usertable,citytable s?"\+b
WHERE usertable.cityid=citytable.cityid guVuO
在FROM子句中可用以下两种格式为表或视图指定别名: f,kV
x:i,l:x
表名 as 别名 +xAD;A4
表名 别名 G5|'uKz2"
例如上面语句可用表的别名格式表示为: aTfc>A;
2I3H?Lrx!m
SELECT username,b.cityid lD'^6
FROM usertable a,citytable b Z<W f/
WHERE a.cityid=b.cityid CfO{KiM(2
WL|71?@C
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 AQtOTT$
\vx'+}
例如: Q@|"xKa
~Y{]yBGoF
SELECT a.au_fname+a.au_lname G0kF[8Am
FROM authors a,titleauthor ta P)LQ=b}V#;
(SELECT title_id,title f'MRC
\
j+>[~c;0)
FROM titles I %sw(uoE
WHERE ytd_sales>10000 T*S)U ;
) AS t 4=%,0.yt
WHERE a.au_id=ta.au_id Unansk
AND ta.title_id=t.title_id i!fk'Yt%
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。