一、简单查询 9Z_!}eY2mc
Q"Ur*/-U
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 8
FJ>W.
m0$~O5|4
表或视图、以及搜索条件等。 q>^x,:L
l`M7a9*U
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 G*].g['
,|Xibfw
SELECT nickname,email {
d*?O
cCWk^lF],
FROM testtable ~A-1x!YiU
M<KWx'uV
WHERE name='张三' aplOo[
:TTZ@ q
(一)选择列表 u@ psVt
s${|A=
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 Scfk]DT
6Y 4I $[
量和全局变量)等构成。 rT}k[
@x4IxGlUs
1、选择所有列 D?Y j5eOa
A]WR-0Z7
例如,下面语句显示testtable表中所有列的数据: ;H%T5$:trP
z~ R: !O-
SELECT * \'}? j- 8
{Bd 0
FROM testtable "A0J~YvYWJ
6t0-u~
2、选择部分列并指定它们的显示次序 E5EAk6
F/(z3Kf
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 _1sjsGp>
^@a|s
Sb
例如:
}@'Zt6+tS
qyl9#C(a
SELECT nickname,email +:#x!i;W8[
Jd0I!L
FROM testtable g,,'Pdd7Pn
MPxe|Wws
3、更改列标题 zwEZ?m!
r:QLO~l/
在选择列表中,可重新指定列标题。定义格式为: Z8yt8O
q=+AN</
列标题=列名 4a6WQVS
fZ6"DJZ
列名 列标题 $^XCI%DH
Y8$,So>~
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 @$bEY#*C
=iEQE
标题: QT\=>,Fz _
'U8% !
SELECT 昵称=nickname,电子邮件=email ~$FgiW
$Z2Y% z6y
FROM testtable =,4iMENm!
TTSyDl
4、删除重复行 ztRe\(9bL
W?
^ ?Kx
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 3gcDc~~=
zZ11J0UI
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 TODTR7yGo
TjswB#
5、限制返回的行数 -{tB&V~+v
\F
}s"#
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 !eH9LRp
(*CGZDg
表示一百分数,指定返回的行数等于总行数的百分之几。 Oz:J8l%
z|5Sy.H>
例如: F6$QEiDu@
X4bB
SELECT TOP 2 * Up/s)8$.
y_F{C 9KE
FROM testtable (r ]3tGp
wj$J}F
SELECT TOP 20 PERCENT * d;-/F b{4
e/{1u$
FROM testtable >n^| eAH
yL#bZ9W
}
(二)FROM子句 av.L%l&d
i3s,C;7[2
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, L#|,_j=9
yl#(jb[?1
它们之间用逗号分隔。 5^}"Tn4I
ycr\vn
t
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 T/$6ov+K
7P!Hryy
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 k^vsQ'TD
@o g&l;
使用下面语句格式加以限定: JQp::,g
,vnHEY&
SELECT username,citytable.cityid 4%]wd}'#Un
+frkC| .
FROM usertable,citytable mqx#N%
.8O.
WHERE usertable.cityid=citytable.cityid 0)?.rthk4S
%e71BZo~^s
在FROM子句中可用以下两种格式为表或视图指定别名: YjT7_|`(]
j?YZOO>X
表名 as 别名 k$u/6lw]IB
sUki|lP
表名 别名 "/O`#Do/
h
dw~AGO#
例如上面语句可用表的别名格式表示为: >H*?ktcW
F_?aoP&5
SELECT username,b.cityid [ ;$(;
20O\@}2q2M
FROM usertable a,citytable b n'&Cr0{
_2wU(XYH
WHERE a.cityid=b.cityid [YsN c
is2OJ,
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 +].Zs<