一、 简单查询 q#8yU\J|,
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 xdM'v{N#m
LbRQjwc]W
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 HG?+b
Fs%`W4/
SELECT nickname,email #ye`vD
FROM testtable ljOY;WV3
WHERE name='张三' "`4ky]
mTxqcQc:7
(一) 选择列表 N!3Tg564j
z8JW iRn
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 2b^Fz0
w4
rqqd} kA
1、选择所有列 *qk7e[IP
liH#=C8l*%
例如,下面语句显示testtable表中所有列的数据: 'Kbrz
:-JryiI
SELECT * /W BmR R
FROM testtable n-l_PhPQ`
CW?Z\
2、选择部分列并指定它们的显示次序 ftR& 5!Wm
83t/\x,Q
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 cGgfCF^`
?Y,^Moc:
例如: 'xxM0Kn`
7H< IO`
SELECT nickname,email Mh5>
hD
FROM testtable p^<(.+P4
H)7v$A,5%
3、更改列标题 jga \Ry=nw
9,`i[Dzp
在选择列表中,可重新指定列标题。定义格式为: 1(IZ,*i
P@vUQ
列标题=列名 L-D4>+
列名 列标题 /3~L#jS
2[qfF6FHA
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: WK(X/!1/k
UgS`{&b36
SELECT 昵称=nickname,电子邮件=email x"NQatdq
FROM testtable Ue
>]uZ|
4、删除重复行 rpm \!O
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 _Tor9Tj
nM2<u[{gF
5、限制返回的行数 Q'Osw"
(b<0=U
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 7)r]h?
dVEs^ZtI
例如: eDZ8F^0
pQ:^ ziwa3
SELECT TOP 2 * 1Ng.Ukb
FROM testtable Z}uY%]
SELECT TOP 20 PERCENT * )-Hs]D:
FROM testtable "}*D,[C5e
wb?k
(二)FROM子句 ge
GhM>G
`7:uc@
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 eQu(3 sYb
j0; ~2W#G*
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: :1j8!R5
Si?s69
SELECT username,citytable.cityid `M6"=)twu
FROM usertable,citytable U\?D;ABQ%
WHERE usertable.cityid=citytable.cityid 49&i];:%7%
在FROM子句中可用以下两种格式为表或视图指定别名: S1U0sP@o
(!5Ta7X
表名 as 别名 JpC=ACF
表名 别名 eb\S pdM6
S7f.^8
(二) FROM子句 Y_:jc{?
b3E1S+\=~
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 .c+U=bV-
<7\j\`
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: i3N{Dt
(is' ,4^b
SELECT username,citytable.cityid $ItmYj.m
FROM usertable,citytable D0FX"BY7
WHERE usertable.cityid=citytable.cityid m.m6.
在FROM子句中可用以下两种格式为表或视图指定别名: :&vX0
Ce:
?IHt T3'Rt
表名 as 别名 0@-4.IHl
表名 别名 FDLo|aP/v
例如上面语句可用表的别名格式表示为: [8sYE h
KQNQ<OE4
SELECT username,b.cityid [q2:d^_FA
FROM usertable a,citytable b Ol RXgJ
WHERE a.cityid=b.cityid y%i9 b&gDd
d/Q#Z
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 F~
5,-atDM
3LLG#l)8
例如: 3&^hf^yg
7 mCf*|
SELECT a.au_fname+a.au_lname N<:c*X
FROM authors a,titleauthor ta .T9$O]:o
(SELECT title_id,title m1pA]}Y/5o
@-dGZ5
FROM titles 9m)$^U>oz
WHERE ytd_sales>10000 Hp=BnN
) AS t -a)1L'R
WHERE a.au_id=ta.au_id A
r]*?:4y[
AND ta.title_id=t.title_id >fXtu:C-!J
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。