一、简单查询 J:yv82
rexv)!J
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 q!y. cyL
aDF@AS
表或视图、以及搜索条件等。 P}v
;d]
u2 s
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 pAE
(i7
yV(#z2|
SELECT nickname,email ]F4QZV(
M
&<VU}c^!
FROM testtable gwoe1:F:J
*#T:
_
WHERE name='张三' k83K2>]
HAxLYun(3w
(一)选择列表 j=l2\W#}
|nefg0`rk
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 Vp/XVyL}R
i%K6<1R;y{
量和全局变量)等构成。 IzpE|8l
EZ)b E9
1、选择所有列 .xJ54Vz
K%v:giN$l`
例如,下面语句显示testtable表中所有列的数据: d`^3fr'.4A
o08WC'bX
SELECT * |g&V? lI
;llPM`)
FROM testtable J3eud}w
23gN;eD+m6
2、选择部分列并指定它们的显示次序 FEjO}lTK
1<r!9x9G
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 V~*Gk! +f
gk%nF
例如: dk|LC-]`A
XIInI
SELECT nickname,email 8z`ZHn3=
qUJ"* )S
FROM testtable 5Z>a}s_i
$6rm;UH
3、更改列标题 ~
WWhCRq
tvI<Why\p
在选择列表中,可重新指定列标题。定义格式为: rl|'.~mc
yYP_TuNa
列标题=列名 D
S U`(`
qLEYBv-3
列名 列标题 #
e?B
f24W*#IX
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 q/EX`%U
J&A1]T4d
标题: Ib..X&N2
<?.eU<+O`S
SELECT 昵称=nickname,电子邮件=email vB7Gx>BQd
\zBi-GI7
FROM testtable &-=~8
jIs>>
4、删除重复行 hxoajexU
5#.m'a)
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 Jt8;ddz
t2dsYU/
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 sX1DbEjj[o
S_P&Fv
5、限制返回的行数 <=.6Z*x+
%'KRbY
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 \?n6l7*t>
Nc\DXc-N
表示一百分数,指定返回的行数等于总行数的百分之几。 *Jsb~wta
k{ qxsNM
例如: ,Cr%2Wg-
$s7U
|F,I
SELECT TOP 2 * j\ y!
t%qep|
FROM testtable _.s,gX
Qt.*Z;Gs
SELECT TOP 20 PERCENT * b/S:&%E
spa:5]B
FROM testtable ,JwX*L<:
ED` 1)1<
(二)FROM子句 eK7A8\;e
y0xBNhev
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, ~0PzRS^o
>$m<R&
它们之间用逗号分隔。 _Raf7 W
hz:7W8
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 h@
lz
"@G[:(BoB<
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 {)qr3-EM#
-}6ew@GE
使用下面语句格式加以限定: '4'Z
0|AgmW_7
.
SELECT username,citytable.cityid yJ?=##
PysDDU}v
FROM usertable,citytable 1
uU$V
=
?Bu*%+
WHERE usertable.cityid=citytable.cityid }b1G21Dc!
!>9s
在FROM子句中可用以下两种格式为表或视图指定别名: H'WYnhU&
(_pw\zk>
表名 as 别名 l#[Z$+!09
(HRj0,/^
表名 别名 yY#h1
EXSJ@k6=8s
例如上面语句可用表的别名格式表示为: 6{)pF
_^_3>}y5op
SELECT username,b.cityid :ts3_-cr
A+l(ew5Lw$
FROM usertable a,citytable b T,!EL+o4
FJ0I&FyWs
WHERE a.cityid=b.cityid Jr5S8c|"
EDnNS
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 %IO*(5f
4Fp[94b
例如: ^Laqq%PI
daSe0:daJ
SELECT a.au_fname+a.au_lname %Y~"Stmx
wNmpUO ?
FROM authors a,titleauthor ta ]gBnzh.
Z^'~iU-?
(SELECT title_id,title T";evM66
`NtW+v
FROM titles kP`#zwp'Ci
Zu"qTJE/1
WHERE ytd_sales>10000 ,7wYa&
p$,G`'l
) AS t }# s{."
jRg/N_2'2
WHERE a.au_id=ta.au_id i|{psA
WaB0?jI
AND ta.title_id=t.title_id r)gK5Mv
XZ%[;[
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。 icb)JZ1K
|:C0_`M9
(三)使用WHERE子句设置查询条件 G' U_I
]$2 yV&V