一、 简单查询 tf9a- s
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 }k8&T\V!
#so"p<7 R
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 J+hifO
z KG]7
SELECT nickname,email L'>0E(D
FROM testtable ^c sOXP=Yp
WHERE name='张三' BT5~MYBl
kh>i#9Ie
(一) 选择列表 k.H4Mf(4
C\cZ
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 zfGr1;
]}_Ohe]X
1、选择所有列 gGbqXG^
/"1[qT\F
例如,下面语句显示testtable表中所有列的数据: OnE~0+
).$kp2IN
SELECT * 2QIo|$
FROM testtable p!K]c D
g8Zf("
2、选择部分列并指定它们的显示次序 &=.7-iC|W
+j6^g*
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 6~8dMy;w
}iB>3|\
例如: B :1r;8{j
42DB0+_wz
SELECT nickname,email ob(~4H-
FROM testtable U }}E
E~W
NX<Q}3cC
3、更改列标题 #~qY%X
2|8$@*-\
在选择列表中,可重新指定列标题。定义格式为: kjR-p=}
_qS4Ns/4s
列标题=列名 .OF2O}
列名 列标题 `%0k\,}V
8uetv
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: ,aSK L1
>vQKCc|93
SELECT 昵称=nickname,电子邮件=email lMXLd91
FROM testtable 8';huq@C{
4、删除重复行 /KCIb:U
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 JB!KOzw
_We4%
5、限制返回的行数 HwZ@T &_4
N*>&XJ#
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 0 aiE0b9c
T7XbbU
例如: }cI _$
A4VVy~sd
SELECT TOP 2 * st(Y{Gs
FROM testtable 'Z^KpW
SELECT TOP 20 PERCENT * D??
\H\
FROM testtable CK} _xq2b
kS(v|d
(二)FROM子句 aaesgF
o}lA\ A
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 Ns`:=
^g N?Io
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: s!K9-qZl<
0Y ld!L
SELECT username,citytable.cityid (k5d.E]CK
FROM usertable,citytable k|_LF[* Z
WHERE usertable.cityid=citytable.cityid ^9*Jz{e
在FROM子句中可用以下两种格式为表或视图指定别名: ?rububDT{
nA XWbavY
表名 as 别名 @?<1~/sfL
表名 别名 mF]8
~C ;gEE-
(二) FROM子句 2lBfc
Y>'t)PK
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 Ezw<
Zk
9 i}H
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: x?-kt.M
;!/g`*?
SELECT username,citytable.cityid @RVj~J.A
FROM usertable,citytable UNKXfe(X9
WHERE usertable.cityid=citytable.cityid CK RnkTTiV
在FROM子句中可用以下两种格式为表或视图指定别名: [%BWCd8Q~P
P}bw Ej
表名 as 别名 FKu^{'Y6E0
表名 别名 /hbdQm
例如上面语句可用表的别名格式表示为: ST^{?Q
o^&nkR
SELECT username,b.cityid cP (is!
FROM usertable a,citytable b tY$4k26
WHERE a.cityid=b.cityid }h_=
n>
'9q:gFO
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 nM&UdKf3
,L7:3W
例如: *v9 {f?
GxcW^{;
SELECT a.au_fname+a.au_lname 8AVG pL
FROM authors a,titleauthor ta ALnE[}N6,
(SELECT title_id,title 5Lm<3:7Q+
"+KAYsVtU
FROM titles /s~&$(d59o
WHERE ytd_sales>10000 \I`g[nT|
) AS t V(6ovJpA0
WHERE a.au_id=ta.au_id !mRDzr7
AND ta.title_id=t.title_id UG<`m]
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。