一、简单查询 se_1wCYz
`CRW2^g
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 Z5v\[i@H!
o_{-X 1w
表或视图、以及搜索条件等。 Nl0*"}`I_
6z~6o0s~
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 $~_TE\F1
p2\@E}
z
SELECT nickname,email mzDbw-#
-_B*~M/vV`
FROM testtable tX)^$3A
gd2cwnP
WHERE name='张三' .|!Kv+yD
&S/KR$^ %
(一)选择列表 4v Ug:'DM
iXI >>9
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 m#ID%[hg$
uq'T:d
量和全局变量)等构成。 !?,rcgi
JT!-Q!O}O
1、选择所有列 L2+~I<|>
Dz8)u:vRS
例如,下面语句显示testtable表中所有列的数据: Re-4y5f
`StlG=TB8
SELECT * Rjt]^gb!*
r761vtC#
FROM testtable C`Zz\DNG@
"|`euxYV
2、选择部分列并指定它们的显示次序 icH\(
@!`x^Tzz
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 5NHNnDhuL
0sIwU!=vm
例如: 'a[|'
t[VA|1gG
SELECT nickname,email q-}qrg
zb.dVK`7N-
FROM testtable opc`n}Fc
s,Azcqem
3、更改列标题 _c,c;
k^K>*mcJ
在选择列表中,可重新指定列标题。定义格式为: q8#zv_>K
aYW9C<5
列标题=列名 0o7*5| T4
mQUI9
列名 列标题 8#L
V
oR
UU'0WIbY6
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 *MC+i$
x4v@o?zW
标题: O/ybqU\7
n`
M!K:Pq
SELECT 昵称=nickname,电子邮件=email kn%i#Fz
O3 NI
FROM testtable v(=?@tF}E
"lLwgh;
4、删除重复行 @S9^~W3G3
gv\WI4"n
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 As{ "B
:<gC7UW
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 TsVU^Z%W
]"ou?ot }
5、限制返回的行数 P_}wjz}9ZX
tzJ7wXRr
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 ANWfRtiU#
]}4JT
表示一百分数,指定返回的行数等于总行数的百分之几。 R`KlG/Tk
r:3h2J[_
例如: ~)CGwST[
Zz/
z7~{
SELECT TOP 2 * };Pdn7;1G:
L%;fYi;n
FROM testtable g>E.Snj}
7K5 tBUNQ
SELECT TOP 20 PERCENT * 0hg4y
{ k>T*/
FROM testtable L.2!Q3&
L8,/
(二)FROM子句 ;W{2\ Es
wU(p_G3
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 'pj*6t1~
nD.K*# u
它们之间用逗号分隔。 F1*xY%Jv^M
S ^]mF>xX8
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列
XFSHl[uS1
YWAH(
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 ?t)Mt]("
p(>D5uN_}5
使用下面语句格式加以限定: LEuDDJ-
,n{R,]y\
SELECT username,citytable.cityid E(F?o.b
`ztp u
~?
FROM usertable,citytable IY
hwFw
5O
#+&"m7
s
WHERE usertable.cityid=citytable.cityid o-<XR9,N*
%6\L^RP
在FROM子句中可用以下两种格式为表或视图指定别名: 068DC_
{4 {X`$
表名 as 别名 mWF\h>]|.
1}R\L"
表名 别名 {ub'
j^.|^q<Y
例如上面语句可用表的别名格式表示为: Q[c:A@oW
:}-VLp4b
SELECT username,b.cityid 5(thDZ !
;o158H$gz;
FROM usertable a,citytable b &z05h<]
JmC2buO
WHERE a.cityid=b.cityid +
B<7]\\M
K5 EJ#1ov
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 87F]a3
`ff@f]|3^
例如: v}\Fbe
9a#Y
D;-p
SELECT a.au_fname+a.au_lname u"Mf xW`
9"?;H%.
FROM authors a,titleauthor ta M?5v oV*
Yfx?3
(SELECT title_id,title nub!*)q
\*M;W|8aB
FROM titles {113B)
Y.q$"lm7k
WHERE ytd_sales>10000 XZ2 ji_D
dXPTW;w
) AS t r?9".H
_q4Yq'dI
WHERE a.au_id=ta.au_id r)B55;*Fh
]F"P3':
AND ta.title_id=t.title_id dkW7k^g
:)y3&