一、 简单查询 ZIN1y;dJ
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 WeJ=]7T'L
<?nz>vz
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 u*f`\vs
/WGD7\G'8
SELECT nickname,email q68CU~i*
FROM testtable [tT_ z<e`
WHERE name='张三' yh2)Pc[
S B~opN
(一) 选择列表 -Uan.#~S
!2kM
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 %QG3~b%
h
uK]-m
1、选择所有列 5dGfO:Dy_
<2d)4@B=
例如,下面语句显示testtable表中所有列的数据: Pbd[gKX_
_@i-?Q
SELECT * *I!R0;HT
FROM testtable yAAV,?:o[
5o0n4W
2、选择部分列并指定它们的显示次序 #SKC>MGz
mv>0j<C91
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 Llkh
kq_
@F]w]d
例如: hraR:l
D
eR4ib-nS
SELECT nickname,email OK)>QGl
FROM testtable wz1nV}
&?@[bD'T
3、更改列标题 #|K{txC
e^em^1H(
%
在选择列表中,可重新指定列标题。定义格式为: X::@2{-@y
\=D+7'3
列标题=列名 WMHYOJR
列名 列标题 Nyt*mbd5
{
vh.-9eD
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: Zb=;\l*&
MJh.)kd$
SELECT 昵称=nickname,电子邮件=email _CPj]m{
FROM testtable cRH(@b
Xr
4、删除重复行 d5NE:%K
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 sj4\lpZ3h
L pq)TE#
5、限制返回的行数 X{Fr
o{>4PZ}=g
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 aGBd~y@e
1d~d1Rd
例如: xT+#K5
&c 2Qa
SELECT TOP 2 * J6[}o4Z
FROM testtable r95,X!
SELECT TOP 20 PERCENT * T ay226
FROM testtable zJP jsD]
`+T 2IPN
(二)FROM子句 HU'w[r6a
k,$/l1D
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 |fywqQFq
bfpeK>T
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 3b\s;!
;e*okYM
SELECT username,citytable.cityid 4evNZ
Q
FROM usertable,citytable (V&8
WN
WHERE usertable.cityid=citytable.cityid pj<aMh
在FROM子句中可用以下两种格式为表或视图指定别名: 2Y%7.YX"
lX%-oRQ/os
表名 as 别名 sVr|kvn2
表名 别名 KAXjvZN1
t
#Kucde
(二) FROM子句 KB^8Z@(+
V,=5}qozQ
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 XlD=<$Nk7
!yT=*Cj4
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: qtdkK LT
_h4]gZ
SELECT username,citytable.cityid q6N{N>-D
FROM usertable,citytable 1X2|jj
WHERE usertable.cityid=citytable.cityid kkfBVmuW
在FROM子句中可用以下两种格式为表或视图指定别名: k-a1^K3
I{[}1W3]W
表名 as 别名 5k@T{
表名 别名 g)\ Tex<
例如上面语句可用表的别名格式表示为: Op8Gj
`
za}Kd^KeB
SELECT username,b.cityid Y-Q)sv
FROM usertable a,citytable b (&NLLrsio
WHERE a.cityid=b.cityid k~so+k&=b
,t QNL\t
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 Y@:l!4DI
_f8H%Kgk;
例如: MM]0}65KG
t\LE\[XM>
SELECT a.au_fname+a.au_lname 50dN~(;p
FROM authors a,titleauthor ta IP$eJL[&D"
(SELECT title_id,title 5L<A7^j
Xp|4 WM
FROM titles 8\9W:D@"x
WHERE ytd_sales>10000 b:'8_jL
) AS t (1q(6!
WHERE a.au_id=ta.au_id lAA-#YG
AND ta.title_id=t.title_id
Ip`1Wv_
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。