一、 简单查询 3*UR3!Z9
*
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 aUHcYc\u
PxS4,`#~
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 8I;XS14Q
u"1rF^j6k
SELECT nickname,email s*/ bi
W
FROM testtable q$(5Vd:
WHERE name='张三' bg,9@ }"F
5{e,L>H<
(一) 选择列表 |*/[`|*G
gD`>Twa&6
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 c9qR'2
FTc.]laO
1、选择所有列 G7!W{;@I
xL|;VyD
例如,下面语句显示testtable表中所有列的数据: S"Lx%
NA3\
SELECT * osARA3\Xt
FROM testtable tZ`Ts}\e
xv{O^Ie+S
2、选择部分列并指定它们的显示次序 Yim<>. !
>_OYhgs1w
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 css64WX^0c
g V5zSudW
例如: D8&`R
j~j jX
SELECT nickname,email -=s(l.?Hm5
FROM testtable e:H26 SW
tCxF~L@
3、更改列标题 toN^0F?Qm
fb8%~3i>
在选择列表中,可重新指定列标题。定义格式为: vAY,E=&XvM
2(5ebe[
列标题=列名 1f",}qe;
列名 列标题 n
-(
su*Pk|6%
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: m]i @ +C
kmzH'wktt
SELECT 昵称=nickname,电子邮件=email 6T 8!xyi-+
FROM testtable DCqY|4Qc
4、删除重复行 .ERO|$fv
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 ]Q]W5WDe:
f&v9Q97=
5、限制返回的行数 9zYVC[o
ctE\ q
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 uqz]J$
SBA?^T
例如: X7k.zlH7T
iq(
)8nxi
SELECT TOP 2 * L
"sO+4w
FROM testtable .bBdQpF-
SELECT TOP 20 PERCENT * |rm g#;/D
FROM testtable {( r6e
cwiX8e"3
(二)FROM子句 45hF`b>%,
=zQN[
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 %p%%~ewmx
q,
O$ %-70
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: g}@OUG"D
w]N!S;<N
SELECT username,citytable.cityid %|s+jeUDn|
FROM usertable,citytable tcxcup%
WHERE usertable.cityid=citytable.cityid >EY3/Go>
在FROM子句中可用以下两种格式为表或视图指定别名: boDt`2=
%^RN#_ro(3
表名 as 别名 ]_N|L|]M
表名 别名 95el'K[R
)"Ztlhs`#
(二) FROM子句 /SYw;<=
@)J+,tg/7
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 M4as
;!(<s,c#:
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: *z@>!8?
&b:1I7Cp*
SELECT username,citytable.cityid \rv<$d@L
FROM usertable,citytable t!RiU ZAo
WHERE usertable.cityid=citytable.cityid 5\z`-)
在FROM子句中可用以下两种格式为表或视图指定别名: >2~=)L
wI(M^8F_Mf
表名 as 别名 k:7(D_
表名 别名 ;!yQ
例如上面语句可用表的别名格式表示为: Gz.|]:1
6j
~#[
SELECT username,b.cityid 21"1NJzP
FROM usertable a,citytable b F'0O2KQ
WHERE a.cityid=b.cityid t5 G9!Nn
X&kp;W
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 j]`PSl+w
1I:+MBGin
例如: O%bEB g
](hE^\SC
SELECT a.au_fname+a.au_lname EFz&N\2
FROM authors a,titleauthor ta !KUi\yQ1
(SELECT title_id,title ZHa"isl$e
@;"|@!l|
FROM titles E>K!Vrh-L
WHERE ytd_sales>10000 V:joFRH9
) AS t {;2PL^i
WHERE a.au_id=ta.au_id 3W
N@J6?
AND ta.title_id=t.title_id AIZ]jq
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。