一、 简单查询 YDZB$?&a
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 ItVVI"-
rCb$^(w{7
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 (!?%"e
3HNm`b8G4m
SELECT nickname,email 4sfq,shRq
FROM testtable Pb1.X9*8c
WHERE name='张三' EztuVe
k2.\1}\
(一) 选择列表 C>F5=&
1(Z+n,Hh
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 F=PBEaX
QIdml*Np?H
1、选择所有列 %$bhg&}
Ft}nG&D
例如,下面语句显示testtable表中所有列的数据: ,zdK%V}
@:@5BCs<
SELECT * CYsLyk
FROM testtable %s ;5
s2F[v:|Wq
2、选择部分列并指定它们的显示次序 /XNC^!z6Js
-S&d5(R
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 Zqv
yTNHM_P
例如: IsVR4t]
YS<KyTb"
SELECT nickname,email }9 N-2]
FROM testtable uZ+"-Ig
|QQ(1#d
3、更改列标题 mR|']^!SE
Y1F%-o
在选择列表中,可重新指定列标题。定义格式为: XsSDz}dg
Y=H_U$
列标题=列名 .bRtK+}F#
列名 列标题 E 0OHl
-Vs;4-B{9
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: =>&~p\Aw
:*R+ee,&-
SELECT 昵称=nickname,电子邮件=email A+}O~,mxP8
FROM testtable o#D'"Tn!
4、删除重复行 ,#9i=gp
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 +i}uRO
IR&b2FTcU
5、限制返回的行数 6BZi4:PDx
7#*`7 K'P!
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 #KuBEHr
:bCswgd[
例如: T hVq5
&V%faa1
SELECT TOP 2 * z uo:yaO
FROM testtable B`vC>
SELECT TOP 20 PERCENT * @PK
1
FROM testtable 3ly]DTbz
>u|4490<0
(二)FROM子句 Gz--C(
{cjp8W8hS
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 ?B`c<H"
.3wx}!:*|
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: .3SP#mI
!
GtF%V
SELECT username,citytable.cityid -I z,vd
FROM usertable,citytable :c(I-xif
WHERE usertable.cityid=citytable.cityid dsK*YY jH
在FROM子句中可用以下两种格式为表或视图指定别名: ]4'V59\
q4vHsy36
表名 as 别名 f1B t6|W%
表名 别名 dIA1\;@
[(vV45(E
(二) FROM子句 NFG~PZ`6R
X@/wsW(kM\
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 q9\(<<f|
:3b\ pEO9\
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: ]w]:9w
Ax9A-|
SELECT username,citytable.cityid 1M?Sl?+j
FROM usertable,citytable gQeoCBCE
WHERE usertable.cityid=citytable.cityid dV^ck+
在FROM子句中可用以下两种格式为表或视图指定别名: j*~z.Q |
oHF,k
表名 as 别名 4F!%mMq
表名 别名 [vnxp/v/<
例如上面语句可用表的别名格式表示为: |-%dN }O
yb\!4ml
SELECT username,b.cityid ,o0[^-b<
FROM usertable a,citytable b s-F3(mc(
WHERE a.cityid=b.cityid -AQ
7Bd
M(ie1Ju
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 d7Z$/ $
I]Z"?T
例如: '
R= O eH
M{=p0?X
SELECT a.au_fname+a.au_lname _+Uf5,.5yU
FROM authors a,titleauthor ta {>Qs+]
(SELECT title_id,title Bi0&F1ZC!
vCtnjWGX}/
FROM titles \.F|c
WHERE ytd_sales>10000 1R]h>'
) AS t q 1A0-W#4
WHERE a.au_id=ta.au_id bOr6"nn
AND ta.title_id=t.title_id hy3?.
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。