一、简单查询 57fl<IM
H#S`m
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 Y\,aJL$
["O_Phb|
表或视图、以及搜索条件等。 ZveNe~D7C
`q9n`h1
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 eMV{rFmT
>'lv Zt
SELECT nickname,email xfF;u9$;
wBWqibY|
FROM testtable pCf9"LLer
"ejsz&n
WHERE name='张三' sYq:2Wn>8Q
yV~TfTJ
(一)选择列表 A`--*$ 8\
+CVB[r#hu
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 Dm@h'*
(@ 1>G
^%
量和全局变量)等构成。 CnpQdI
&^UT
1、选择所有列 s
TVX/Q
ew \WV"
例如,下面语句显示testtable表中所有列的数据: O$n W
/F$E)qN7n
SELECT * <~*[OwN
vM@8&,;
FROM testtable vX7U|zy
fN1b+d~*6
2、选择部分列并指定它们的显示次序 /-knqv
1COSbi]
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 ih|;H:"^
SiYH@Wma
例如: <vE|QxpR
yH(3 m#
SELECT nickname,email zs(P2$
e-Oz`qW~
FROM testtable xnC:?d
@Di!~e6
3、更改列标题 VKtlAfXy~
.Y|wG<E
在选择列表中,可重新指定列标题。定义格式为: n0LNAhM
f}~=C2R1<!
列标题=列名 **\?-*c=U
p+pu_T;~
列名 列标题 dVPY07P
K.=5p/^a
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 ,(RpBTV
Bq;GO
标题: d[{!^,%x"
ZC%;5O`
SELECT 昵称=nickname,电子邮件=email 1:iB1TclP
BoQ%QV69%
FROM testtable V.9p4k`
I94-#*~I
4、删除重复行 k*u6'IKi.4
\#PZZH%
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 .EPv4[2%F8
`T+w5ONn
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 qw*) R#=
P:_bF>r ?
5、限制返回的行数 {+ Ibi{
.hM t:BMf*
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 E]v]fy"
/N({"G'
表示一百分数,指定返回的行数等于总行数的百分之几。 ySB0"bl
w=CzPNRHH!
例如: p>O/H1US;
o%f:BJS
SELECT TOP 2 * n|pdYe8\
eh%{BXW[p
FROM testtable @`#x:p:
hj&~Dn(
SELECT TOP 20 PERCENT * 2~4&4
::+;PRy_E
FROM testtable DSRmFxkk
d/T&J=
(二)FROM子句 (/0dtJ
W"*2,R[}%
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, @}19:A<'
\>>P%EU,
它们之间用逗号分隔。 -$kIVh
aNs8T`
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 j74hWz+p4
dF09_nw
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 J2 / 19'QE
]kXWeY <
使用下面语句格式加以限定: a'`?kBK7`U
Ch3MwM5]
SELECT username,citytable.cityid ]DU?N7J
_Rb2jq(&0
FROM usertable,citytable ML MetRP
,NvXpN
WHERE usertable.cityid=citytable.cityid 7p hf
`|Hk+V
在FROM子句中可用以下两种格式为表或视图指定别名: '!ks $}$`h
0)cSm"s
表名 as 别名 j:qexhtho
^%!SKhRIK
表名 别名 9pPLOXr ,
[=BMvP5
例如上面语句可用表的别名格式表示为: n*Dn{ 7v#z
'l`prp3
SELECT username,b.cityid O@
H.k<zn
6bc\
)n`
FROM usertable a,citytable b @D!*@M6
\gkhSLq
WHERE a.cityid=b.cityid u#rbc"
a|=^
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 vG.KSA
q*4U2_^.
例如: \{]y(GT
UlXxG|
SELECT a.au_fname+a.au_lname >d=pl}-kOQ
UPP"-`t
FROM authors a,titleauthor ta #qmsZHd}b
f>$RR_
(SELECT title_id,title fN&uat