一、简单查询 BCz4
s{F
$yj*n;
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 <b_K*]Z
W|rAn2H
表或视图、以及搜索条件等。 GIpYx`mHi
%++:
K
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 v*JKLA
ELMz~vp
SELECT nickname,email Ph.RWy")
dQ-g\]d|
FROM testtable \vc&V8
l?J[K
WHERE name='张三' {6qxg _{
0k?]~f
(一)选择列表 |r;>2b/ x
5?
Y(FhnIC
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 <^{(?*
rOEBL|P0
量和全局变量)等构成。 jR\! 2!
,f,+) C$
1、选择所有列 q^wSM
qyKR]%yzi
例如,下面语句显示testtable表中所有列的数据: xnWezO_
_<c}iZv@
SELECT * BLqK5~
&X`
lh P
FROM testtable 811QpYA
&vN!>bR
2、选择部分列并指定它们的显示次序 eA?|X|
ls9Y?
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 T<Zi67QC@
\k=%G_W
例如: \21Gg%W5AE
MuzQz.C
SELECT nickname,email Rh
]XJM
u=~`5vA
FROM testtable Em{;l:;(W
2dJE`XL
3、更改列标题 awQGu,<N
awz.~c++
在选择列表中,可重新指定列标题。定义格式为: u:W/6QS
-T+'3</T
列标题=列名 yn(bW\
I*cb\eU8Y
列名 列标题 KE5>O1
?GLCd7TP
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 Rm$( X5x>o
L %ifl:K
标题:
4sH?85=j
2*
TIr
SELECT 昵称=nickname,电子邮件=email .Xe_Gp"x
P&tw!B
FROM testtable y
)<+?@sP
z?|bs?HKS
4、删除重复行 ?pd/cj^
Q4]Od{[
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 6^BT32,'
gCVOm-*:
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 p-DHTX
pbWjTI $
5、限制返回的行数 D,=#SBJ :Z
Ja/
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 W* v3B.
`Nz`5}8.?
表示一百分数,指定返回的行数等于总行数的百分之几。 "K+EZ%~<
%CgV:.,K
例如: 7;Q4k"h
~>~qA0m"m
SELECT TOP 2 * 8=0I4\
;$4&Qp:#
FROM testtable "*MF=VB1
})J}7@VPO
SELECT TOP 20 PERCENT * Wfc~"GQq4
BD^1V(
I/
FROM testtable }*qj,8-9
"oF)u1_?
(二)FROM子句 YGc:84S
[U"/A1p
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, /J&DYxl":
kh#fUAt
它们之间用逗号分隔。 %p&y/^=0I
_.BT%4
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 n:k4t
yg~@}_C2_
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 z%lJWvaA7
ja&m-CFK
使用下面语句格式加以限定: *BF[thB:a
0?gHRdU"
SELECT username,citytable.cityid BIe:7cR%
r=54@`O!
FROM usertable,citytable \ a(ce?C
iXvrZofE
WHERE usertable.cityid=citytable.cityid $p$p C/:%
m&'!^{av
在FROM子句中可用以下两种格式为表或视图指定别名: S3E5^n\\
_ u~0t`f~
表名 as 别名 MHye!T6fO\
.sFN[>)
表名 别名 M:iH7K
P*VZ$bUe5@
例如上面语句可用表的别名格式表示为: $b53~
UEfY'%x
SELECT username,b.cityid uhp.Yv@c
/4+(e I7
FROM usertable a,citytable b g]`YI5
q(~|roKA(
WHERE a.cityid=b.cityid Qh-:P`CN
?#z<<FR
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 K4YD}[
K{"hf:k
例如: )58~2vR
/!MKijI
SELECT a.au_fname+a.au_lname n9`]}bnX
:XG~AR/
FROM authors a,titleauthor ta yTZo4c"
+{I" e,Nk
(SELECT title_id,title H6|eUU[&
1+XM1(|c`
FROM titles M6Np!0G
w-LENdw
WHERE ytd_sales>10000 $gD8[NAIx=
; D/6e6
) AS t Z*UVbyC
nb<o o:^
WHERE a.au_id=ta.au_id kw]?/s`
y)CvlI
AND ta.title_id=t.title_id u'>94Gm}
Gsb^gd
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。 1# z@D(
/sT?p=[.
(三)使用WHERE子句设置查询条件 yRXWd*9
`&