一、 简单查询 B9$jSD
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 +)<wDDC_
,t9^j3Ixg
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 KB`!Sj\
q6SXWT'Sa
SELECT nickname,email MVTMwwO \[
FROM testtable I E&!YP(U(
WHERE name='张三' Vp*KfS]
v99B7VH4
(一) 选择列表 uRRQyZ
`V]5 sE]G
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 r1.nTO%
zHL@i0>^
1、选择所有列 'y2nN=CN
PQnF
例如,下面语句显示testtable表中所有列的数据: !^=*Jq>
6[LM_eP
SELECT * vCxD~+zf
FROM testtable D2!X?"[P
UAFwi%@!-q
2、选择部分列并指定它们的显示次序 Xti[[s J
O[s{ Gk'>
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 s'a/j)^
eg?<mKrZ
例如: Hl/
QnI!
9XyYHi
SELECT nickname,email P'*)\faw
FROM testtable WD2]&g
pP?MWe
Eg
3、更改列标题 KJ=6 n%6
^xHTW g%9
在选择列表中,可重新指定列标题。定义格式为: D@|W<i-
jR22t`4
列标题=列名 %Bn?n{/
列名 列标题 V |/NB
zb}9%.U
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: :xD=`ib
*-q"3D`
SELECT 昵称=nickname,电子邮件=email 0]=i}wL 8
FROM testtable 8x8uo
4、删除重复行 =aA+~/~8%
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 =aj/,Q]
e2ilB),
5、限制返回的行数 feNdMR7eM
oCi=4#g%7
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 7_Z#m (
?^$MRa:D
例如: &nkW1Ner9
OCJnjlV%
SELECT TOP 2 * LbG_ z =A
FROM testtable J'fQW<T4wU
SELECT TOP 20 PERCENT * .0iQad&duh
FROM testtable U.XNv-M
e~@[18
(二)FROM子句 R_68-WO
wX[8A/JPD
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 2viM)+
:Jy'#c
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: C] 9p5Hs
U{z9>
SELECT username,citytable.cityid *@Y3oh}S
FROM usertable,citytable 7L@K _ZJ
WHERE usertable.cityid=citytable.cityid M^iU;vo
在FROM子句中可用以下两种格式为表或视图指定别名: RIE5KCrGB
Y$Y_fjd_
表名 as 别名 &)vC;$vD`
表名 别名 I1\a[Xe8E
T ;vF(
(二) FROM子句 Ucm :S-
%1O[i4s:-
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 H5]^
6
HwX
2eC(Ijq[a
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: J-)
XQDD
\XM^oE#G
SELECT username,citytable.cityid ZAUQJS 91E
FROM usertable,citytable D]W$?(=4
WHERE usertable.cityid=citytable.cityid 9}uW}yJ
在FROM子句中可用以下两种格式为表或视图指定别名: =ng\ 9y[;D
bH2MdU
表名 as 别名 %]6~Eq%s
表名 别名 x{,q]u /
例如上面语句可用表的别名格式表示为: m-DsY
P=&o%K,:f
SELECT username,b.cityid J?}WQLVP'
FROM usertable a,citytable b 2@~M4YJf
WHERE a.cityid=b.cityid Z]WnG'3N
!]fQ+ *X0g
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 q7Dw_<
o{EC&-
例如: S.Ma$KL~'^
-gas?^`
SELECT a.au_fname+a.au_lname GbA.UM~
FROM authors a,titleauthor ta Ru>uL@w
(SELECT title_id,title bi&*9K0
HXYRH
FROM titles UybW26C;aU
WHERE ytd_sales>10000 _uKZ Ml
) AS t dT$M y`>
WHERE a.au_id=ta.au_id
qY$qaM^=
AND ta.title_id=t.title_id *B\H-lp?
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。