一、简单查询 `OO=^.-u
(=cR;\s<
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 P~$FgAV
:oh(M|;/2
表或视图、以及搜索条件等。 u4*7n-(
l3dGe'
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 bU9B2'%E
;gfY_MXnF
SELECT nickname,email /^v?Q9=Y
#-?pY"N,
FROM testtable )xYv$6=
a<9cj@h
WHERE name='张三' WDc2Qt
5|&8MGW-$
(一)选择列表 b37P[Q3
(,<&H;,8
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 {-;lcO D
*$mDu,'8
量和全局变量)等构成。 oace!si
lX$6U|!
1、选择所有列 3#o!K
8@S7_x
例如,下面语句显示testtable表中所有列的数据: F[uy'~;@
q|,cMPS3
SELECT * HO%atE$>
>Q':+|K}
FROM testtable jkw:h0hX
M il
![A1
2、选择部分列并指定它们的显示次序 +Gv{Apd"
2gLa4B-
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 &(a#I]`9M
+^1E0@b%
例如: ^{\gD23
7DaMuh~<
SELECT nickname,email tr3Rn :0]
+rse,b&U(
FROM testtable (GB2("p`
9fp@d
3、更改列标题 2]W"sT[
qd\5S*Z1
在选择列表中,可重新指定列标题。定义格式为: Cj^:8 ?%
)vVt{g
列标题=列名 Ln/6]CMl
l`D^)~o8
列名 列标题 ."9t<<!
;O` \rP5w
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 s*$Re)}S
JRQ{Q"`)
标题: 'ap<]mf2
rF C 6"_
SELECT 昵称=nickname,电子邮件=email S0?4}7`A
J-C3k`%O
FROM testtable \7M+0Ul1
` QC
4、删除重复行 Qx{k_ye`
*PQu9>1w
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 v,z s
dr"d
0IU>KGJ-0s
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 PAG.],"D
0?kaXD
5、限制返回的行数 GQ<]Sd}[
h&Thq52R
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 ?Ne@OMc
=\CJsS.
表示一百分数,指定返回的行数等于总行数的百分之几。 H}G=%j0
$B6CLWB
例如: @pq#?
.Y B}w
SELECT TOP 2 * HsrIw
O%RkU?ME
FROM testtable jSa9UD
Q|40
8EM
SELECT TOP 20 PERCENT * p0Cp\.
`CCuwe<v
FROM testtable =2&/Cn4
VxD_:USIF
(二)FROM子句 n#@/A
h%'4V<V
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, Wr3j8"f/
fBCW/<Z
它们之间用逗号分隔。 ke.{wh\0
VrL==aTYXs
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 .XPcH(q
e.pm`%5bO
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 v@zpF)|
"E`;8SZa
使用下面语句格式加以限定: %ux%=@%
]L0GIVIE
SELECT username,citytable.cityid b~F(2[o
}6/L5j:+
FROM usertable,citytable ?v-Y1j
#hinb[fQ
WHERE usertable.cityid=citytable.cityid D(3\m)
jDI )iW`P
在FROM子句中可用以下两种格式为表或视图指定别名: GA&mM