一、简单查询 j TyR+#Wn
O)jpnNz
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 2I|`j^
c;13V(Djy
表或视图、以及搜索条件等。 ]VkM)< +
dKk#j@[n"
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 N*w6D:
nr{#Krkb
SELECT nickname,email @CTSvTt$
0ap_tCY
FROM testtable ^xt @
X7g@.Oy`
WHERE name='张三' lA/.4"nN
0aRHXc2<
(一)选择列表 'nMj<:0wlD
6L!/#d0
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 \2c3Nsra
a$AR
量和全局变量)等构成。 ++=f7yu
vmj'X>Q
1、选择所有列 li37*
[pRRBMho
例如,下面语句显示testtable表中所有列的数据: mp:xR ^5c
Ct<]('Hm(
SELECT * 0R-J
\
kdP*{
FROM testtable D^Gs_z$['
F%tV^$%
2、选择部分列并指定它们的显示次序 )yt_i'D}
(Qcd !!
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 #
E{2 !Z
yp!7^
例如: A/c #2
)Ggv_mc h
SELECT nickname,email Pxvf"SXX
ZamOYkRX
FROM testtable N;q)[Dr
B{lj.S`mB
3、更改列标题 Iysp)
c<a)Yqf"]
在选择列表中,可重新指定列标题。定义格式为: *yZ `aKfH
{zTnE?(o`
列标题=列名 z}a9%Fb
fjd)/Gg
列名 列标题 }ip3d m
0g`$Dap
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 p>l:^-N;f
I'E7mb<2
标题: {ew;
/;
4o<rj4G>
SELECT 昵称=nickname,电子邮件=email #I"s{*
[0n[ \&
0
FROM testtable jcbq#
F;L8FL-
4、删除重复行
'N3)>!Y:8
b]b+PK*h
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 ~JS BZ@
h5Ee*De
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 >i_ #q$o
l86gs6>
5、限制返回的行数 DS1{~_>nFu
]SmN}Iq1
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 Miz?t*|{[
;O7Vl5R
表示一百分数,指定返回的行数等于总行数的百分之几。 i*((@:
.Im=-#EN
例如: "U-dw%b}b
}0IeKpu5
SELECT TOP 2 * B#G:aBCM
mt]^d;E
FROM testtable 4Ql9VM%y
#:NY9.\o
SELECT TOP 20 PERCENT * pft-.1py
^D76_'{
FROM testtable hS1I ;*t
UDT\Xc
(二)FROM子句 !(HPx@_
bE;c&g
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, )|=4H>?%
ek"Uq RY
它们之间用逗号分隔。 zP&D
tv_&PIu]L
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 mxE<
cgi:"y F
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 b_X&>^4Dkl
,M9e *
使用下面语句格式加以限定: bq2f?uD-}
FeZ*c~q
SELECT username,citytable.cityid Za,myuI+
\ZA@r|=$
FROM usertable,citytable L54]l^ls>
61w
({F
WHERE usertable.cityid=citytable.cityid b Rc,Y<
n?778Wo}
在FROM子句中可用以下两种格式为表或视图指定别名: _G&gF.|
jU-aa+
表名 as 别名 ^=k=;
R GL2S]UFs
表名 别名 PthgxB^
4.p:$/GTS
例如上面语句可用表的别名格式表示为: +e,c'.
l,*5*1lM
SELECT username,b.cityid Wu" 1M^a
*M)M!jTv
FROM usertable a,citytable b }K5okxio
I^n DO\m <
WHERE a.cityid=b.cityid f92z/5%V
S1[, al
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 = N;5T
R nwFxFIQ
例如: ]q~bi<E9W
n@L@pgo%~
SELECT a.au_fname+a.au_lname U\u07^h[
snWe&