一、 简单查询 .hz2&9Ow
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 oX|?:MS:
O-GxUHwWr
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 %Y',|+Arx
nm):SEkC
SELECT nickname,email sd!sus|( R
FROM testtable dB)[O9K)
WHERE name='张三' %,? vyY
#<#%>Y^
(一) 选择列表 ZgF/;8!~V-
76MsrOv55
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1_3?R}$Wl
LZV}U*
1、选择所有列 /yK"t<p
@36S}5Oa
例如,下面语句显示testtable表中所有列的数据: zh?4K*>.k
v ($L
SELECT * BI/y<6#rR
FROM testtable gM, &Spn
QMb^&?;s
2、选择部分列并指定它们的显示次序 5bfb!7-[i
5c;En6W
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 AN10U;p/O
Mo|yv[(K,
例如: jsWX 6(=
YN^jm
SELECT nickname,email on50+)uN
FROM testtable J#@lV
zPBfiK_hV
3、更改列标题 Xiju"Cup"
gb_X?j%p7
在选择列表中,可重新指定列标题。定义格式为: ADBpX>
41'EA\V
列标题=列名 eBvW#Hzp
列名 列标题 }xJR.]).KW
C1ZyB"{
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: xMsGs
)Pa*+ew7
SELECT 昵称=nickname,电子邮件=email ]wf|PU~nr
FROM testtable A\g%
4、删除重复行 <ge}9pU)o^
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 `]&*`9IK{
s!`H
5、限制返回的行数 T9y768%
5G oK"F0i
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 -mC:r&Y>[
d#7]hF
例如: #S*pD?VZ
d5'
)6
SELECT TOP 2 * `vX4!@Tw
FROM testtable z"qv
SELECT TOP 20 PERCENT * >]?Jrs
FROM testtable oT!/J
:p$EiR
(二)FROM子句 z5ZKks
C2.W[T
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 jMqx
F,.Q|.nN
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: ,4yG(O$)
w>vmF cp
SELECT username,citytable.cityid Zly-\z_
FROM usertable,citytable 3FY_A(+
WHERE usertable.cityid=citytable.cityid qAORWc
在FROM子句中可用以下两种格式为表或视图指定别名:
,5kvn
9b%|^.B
表名 as 别名 [yvt1:q
表名 别名 Vku#;:yUb^
Un\Ubqi0
(二) FROM子句 PS/W
h
-;<>tq'3`
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 d}VALjXHX!
T N Ist
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: |Z!@'YB
:@;6
SELECT username,citytable.cityid uZ<%kV1B
FROM usertable,citytable
,| <jjq)
WHERE usertable.cityid=citytable.cityid -[<vYxX:h:
在FROM子句中可用以下两种格式为表或视图指定别名: 6~3jn+K$1
N+hedF@ZU
表名 as 别名 Mb~~A5
表名 别名 b_ZNI0Hp@
例如上面语句可用表的别名格式表示为: Seg#s.
t#{x?cF
SELECT username,b.cityid *{Yi}d@h(
FROM usertable a,citytable b R@OSqEnr
WHERE a.cityid=b.cityid PJ0Jjoh"Y
6."PS4}:
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 i<Q&
D\Pv
OMi02tSm
例如: mDlCt_h
W0U`Kt&~a
SELECT a.au_fname+a.au_lname /t$*W\PL@
FROM authors a,titleauthor ta e6o/q)9#
(SELECT title_id,title hi0XVC95
v10mDr
FROM titles (<
:mM
WHERE ytd_sales>10000 D| [/>x
) AS t rI *!"PL
WHERE a.au_id=ta.au_id 5'62ulwMP=
AND ta.title_id=t.title_id +R9%~Z.=
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。