一、 简单查询 s]|tKQGl,
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 qDYNY`
ZO/u3&gU
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 e([>sAx!1
B\e*-:pq>
SELECT nickname,email l#%7BGwzY
FROM testtable }WaZ+Mdg\
WHERE name='张三' "qd|!:bE
gPb.%^p
(一) 选择列表 >3@3~F%xAX
EwkSUA>Tm
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 ^+v1[U@
g(;OUkj$Zp
1、选择所有列 :8hI3]9
Rb. vyQ
例如,下面语句显示testtable表中所有列的数据: 6>oc,=MV/
MIn_?r
SELECT * vSC1n8 /
FROM testtable cjJfxD&q
+ima$a0Zyt
2、选择部分列并指定它们的显示次序 *YL86R+U
'4<o&b^yQ
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 %ut8/T
|R _rfJh
例如: Tjq1[Wq
3Ovx)qKxd
SELECT nickname,email n6+h;+8;]
FROM testtable T!ZjgCY}
WZY+c
3、更改列标题 (RV#piM
/e|Lw4$@S
在选择列表中,可重新指定列标题。定义格式为: u!5q)>Wt(
`[g$EXX
列标题=列名 ES AX}uF
列名 列标题 2xf lRks
..X _nF
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: Yj/o17
NsP=l]
SELECT 昵称=nickname,电子邮件=email <kPNe>-f
FROM testtable ZTV)D
4、删除重复行 t!*[nfR
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 1n[)({OQ
8.n#@%
5、限制返回的行数
vxTn
_:=\h5}8
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 HbI{Xf[6LP
,;Wm>V)o
例如: vt2.
i$u
G<D8a2q
SELECT TOP 2 * hTzj{}w
FROM testtable R[j? \#
SELECT TOP 20 PERCENT * (${ #l
FROM testtable &K[sb%
*$BUow/>
(二)FROM子句 [n)ak)_/
`;+x\0@<
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 kSzap+ nB?
GEF's#YWK
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: j?m(l,YD|*
yRyXlZC
SELECT username,citytable.cityid grzmW4Cw
FROM usertable,citytable #e-K It
WHERE usertable.cityid=citytable.cityid QK[^G6TI
在FROM子句中可用以下两种格式为表或视图指定别名: \} v@!PQl
@jm +TW
表名 as 别名 @n?"*B
表名 别名 41<h|WA
z$R&u=J
(二) FROM子句 ;mQ|+|F6X
*3fl}l
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 g:ky;-G8b
-0kMh.JYR
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: $<nRW*d
%W\NYSm
SELECT username,citytable.cityid hmo4H3g!N
FROM usertable,citytable S',h*e
WHERE usertable.cityid=citytable.cityid cB){b'WJ
在FROM子句中可用以下两种格式为表或视图指定别名: tjwf;g}$
py:L-5
表名 as 别名 cM'MgX9
表名 别名 #%@bZ f
例如上面语句可用表的别名格式表示为: ?.Vuet
Lw,}wM5X
SELECT username,b.cityid {l,&F+W$C
FROM usertable a,citytable b LYECX
WHERE a.cityid=b.cityid slPr^)
<q$Tk,
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 7HH@7vpJ^
E> GmFw
例如: F_'{:v1GW
UX63BA
SELECT a.au_fname+a.au_lname @3KSoA"^
FROM authors a,titleauthor ta )VkVZf | S
(SELECT title_id,title 6Q7=6
nt$PA(Y
FROM titles dxAGO(
WHERE ytd_sales>10000 ,$:u^;V(
) AS t k-
9i
WHERE a.au_id=ta.au_id :XFQ}Cl
AND ta.title_id=t.title_id LF!KP
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。