一、 简单查询 swJQwY
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 p-DHTX
_E6N*ORV
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 zq ?xY`E
U^)`_\/;?
SELECT nickname,email 10m|?
FROM testtable }mUb1b
WHERE name='张三' h>!9N
dzG
/Q:mUd
(一) 选择列表 mWn0"1C
UL%a^' hR
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 {9XNh[NbP
pY\=f0]
1、选择所有列 *1_Ef).
3%Q9521
例如,下面语句显示testtable表中所有列的数据: #@1(
;/+U.I%z
SELECT * ,i;#e
FROM testtable ^%LyT!y
Y5"HKW^
2、选择部分列并指定它们的显示次序 # M!1W5#
7+X~i@#rU
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 6P,uy;PJ
N:+d=G`x
例如: `YMd0*
JZ:yPvJ
SELECT nickname,email GWWaH+F[h
FROM testtable >XM]UdP
:Y9/} b{
3、更改列标题 *_}0vd
_bgv +/
在选择列表中,可重新指定列标题。定义格式为: pW>{7pXn
PQh s^D
列标题=列名 HGd.meQ
列名 列标题 0plX"NU
NN5Ejr,
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: DpT$19Q+
i*!2n1c[
SELECT 昵称=nickname,电子邮件=email B/!/2x
FROM testtable )DlKeiK
4、删除重复行 0bIgOLP
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 n:k4t
+#< Z/
5、限制返回的行数 M1*bT@6
H?xYS|
n
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 9ZY,T]ym?
M#m;jJqON
例如: E'SDT*EI
"J+4
SELECT TOP 2 * difX7)\
FROM testtable _ F|}=^Z`
SELECT TOP 20 PERCENT * g+<[1;[-
FROM testtable 39F
e#u
=1,1}OucP
(二)FROM子句 U)aftH
*Pk
.|s,':hA
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 vP? T
~gNFcJuy
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: +"k?G
rcY &n^:
SELECT username,citytable.cityid l~DIV$>,Z
FROM usertable,citytable #5'&
|<
WHERE usertable.cityid=citytable.cityid ``6-
在FROM子句中可用以下两种格式为表或视图指定别名: o[+t}hC[
wArfnB&
表名 as 别名 8~TKiR5
表名 别名 lNWP9?X
LGX+_"
(二) FROM子句 6qT-
WLfDXx2A
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 pv-c>8Wb6
jh`[Y7RJO
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: uhp.Yv@c
?.H]Y&XF
SELECT username,citytable.cityid {s*2d P)
FROM usertable,citytable !=a]Awr\
WHERE usertable.cityid=citytable.cityid 8?YeaMIBB
在FROM子句中可用以下两种格式为表或视图指定别名: q(~|roKA(
P~iZae
表名 as 别名 ',LC!^:~Nw
表名 别名 "dvo@n|
例如上面语句可用表的别名格式表示为: hCd? Kti
VYO1qj
SELECT username,b.cityid lCl5#L9
FROM usertable a,citytable b w&Gc#-B
WHERE a.cityid=b.cityid }N$f=:iI
EUQtl_h/H
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 8Gnf_lkI
\[^!
ys
例如: =6Gn?
/{
kLU-4W5t
SELECT a.au_fname+a.au_lname DrC"M*$!
FROM authors a,titleauthor ta ;DR5?N/a
(SELECT title_id,title af9KtX+
JEMc _ngR!
FROM titles T&b_*)=S
WHERE ytd_sales>10000 FoH1O+e
) AS t $AE5n>ZD$
WHERE a.au_id=ta.au_id b(Tvc
AND ta.title_id=t.title_id (j??
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。