一、 简单查询 5C?1`-&65V
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 s$6#3%h
\M@8# k|
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 h_!"CF<n
fTgN2U
SELECT nickname,email 'Y Zs6rcJ
FROM testtable KIJ[ cIw
WHERE name='张三' Hm*#HT%#
;d40:q<
(一) 选择列表 ro@BmRMW
{NDP}UATw
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 |;yb *
r%n[PK^(
1、选择所有列 TD7ONa-,
`I$A;OPK7
例如,下面语句显示testtable表中所有列的数据: k#[s)Ja?s
!o!04_
SELECT * gs>cx]>
FROM testtable ~!kbB4`WK
!6C d.fpWL
2、选择部分列并指定它们的显示次序 VRt*!v<")
cqp#1oM4M
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 ] plC
RoZV6U~
例如: 8{u01\0}
+dv@N3GV
SELECT nickname,email {%Sww:
FROM testtable ?|dz"=y
h6t>yC\
3、更改列标题 v2V1&-
eGil`:JY"
在选择列表中,可重新指定列标题。定义格式为: vxx3^;4p
YSif`W!
列标题=列名 P+UK@~D+G
列名 列标题 cj
*4XYu
,YTIYG](
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: p2K9R4
3>6o=7/PU
SELECT 昵称=nickname,电子邮件=email 'CX
KphlWs
FROM testtable ewg WzB9c
4、删除重复行 6wgOmyJx
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 Y)`+u#`
R
f14c}YY
5、限制返回的行数 }^q#0`e(y
$Vzfhj-if
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 |z%,W/Ef
=Wa\yBj_;m
例如: Zpmy)W]1
7SCI_8`
SELECT TOP 2 * }0G Ab2
FROM testtable -tQ|&fl
SELECT TOP 20 PERCENT * 7@?b _
FROM testtable tDo0Q/`
;+U9;
(二)FROM子句 ~7
TzUb
u+_#qk0NfK
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 *$!LRmp?
'\Ub*m((1O
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: Up&q#vqIj
/v[-KjTj7
SELECT username,citytable.cityid :w+Rs+R
FROM usertable,citytable |=POV]K
WHERE usertable.cityid=citytable.cityid x3Uv&
在FROM子句中可用以下两种格式为表或视图指定别名: :-)[B^0
EIRf6jL
表名 as 别名 V_* ^2c)
表名 别名 =j0V/=
[>;O'>
(二) FROM子句 A?/?9Gr
\<} nn?~n
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 L;"<8\vWB
jo^*R'}
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: ?6dtvz;K+?
k$UBZ,=iC
SELECT username,citytable.cityid DYS(ZY)4
FROM usertable,citytable &ly[mBP~
WHERE usertable.cityid=citytable.cityid Tx5L
在FROM子句中可用以下两种格式为表或视图指定别名: ect?9S[!y
,#G@ri:B
表名 as 别名 Z=|@76
表名 别名 _OY ;SJ(
例如上面语句可用表的别名格式表示为: 5IMH G%W7
ZeO>Ag^
SELECT username,b.cityid D fea<5~^z
FROM usertable a,citytable b `4CRpz
WHERE a.cityid=b.cityid <T wq{kt
s@$AYZm_
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 >BX_Bou
1 wG1\9S
例如: |Xag:hof
jhLh~.
8
SELECT a.au_fname+a.au_lname D&shrKFx
FROM authors a,titleauthor ta m{*l6`dF
(SELECT title_id,title VxCH}&!
9c 6=[3)V
FROM titles ,J|};s+
WHERE ytd_sales>10000 AOe~VW
) AS t fAs:[
WHERE a.au_id=ta.au_id ^{w&&+#,q
AND ta.title_id=t.title_id M Pt7 /
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。