一、 简单查询 vzPuk|q3
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 eA'1
p"k[ac{
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 tShyG!b
dp~] Wx
SELECT nickname,email Uh=@8v
FROM testtable zM+eb| >cr
WHERE name='张三' K! e51P
Ubf@"B
(一) 选择列表 iciw 54;4
%FSY}65
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 9:1[4o)~
~
u',Way
1、选择所有列 jGaI6G'N
F!pgec%]'
例如,下面语句显示testtable表中所有列的数据: v>oWk:iJP
6
~LCj"
SELECT * KE*8Y4#9
FROM testtable 7,:$, bL
9Atnnx]n
2、选择部分列并指定它们的显示次序 NR|t~C+
/@`kM'1:
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 sBV})8]KM
Z@d(0 z
例如: B>XfsZS
V9cKl[
SELECT nickname,email GT3?)g{Z
FROM testtable 4ht+u
uqFYa bU
3、更改列标题 bz4TbGg]
^j>w<ljzz
在选择列表中,可重新指定列标题。定义格式为: TeXt'G=M
/lqVMlz\77
列标题=列名 j|X>:!4r
列名 列标题 2ms@CQy(00
zc#$hIi
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: >J,y1jzJ
\I[50eh|
SELECT 昵称=nickname,电子邮件=email GO<,zOqvU
FROM testtable "B"Yfg[
4、删除重复行 m2h@*
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 *%;+3SV
RwyRPc_
5、限制返回的行数 `Eq~W@';Q0
MeMSF8zSQ
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 f tE2@}
w0(1o_F7.
例如: rmh 1.W
wM
aqR"%
SELECT TOP 2 * I/V lH:o
FROM testtable ]
lONi
SELECT TOP 20 PERCENT * H4{CiZ
FROM testtable -H-:b7
"s3eO
(二)FROM子句 *uG!U%jY)
eemw
I
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 X+LG Z4]D
R m^$Dn
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 5@&{%99
& Y Y^Bd#
SELECT username,citytable.cityid !wNj;ST*
FROM usertable,citytable _j Ck)3KO
WHERE usertable.cityid=citytable.cityid >.4mAO
在FROM子句中可用以下两种格式为表或视图指定别名: \!Cc[n(f#
Fx6]x$3
表名 as 别名 Ww)p&don
表名 别名 OJ!=xTU%h
sfKu7p uc
(二) FROM子句 (Xv'Te?
Tt\h#E
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 SSo7
U
9?J
3G,&
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: _`- trE.
,C97|6rC
SELECT username,citytable.cityid Md[M}d8
FROM usertable,citytable jqv"8S5
WHERE usertable.cityid=citytable.cityid MFzJ 8^.1R
在FROM子句中可用以下两种格式为表或视图指定别名: b;k3B7<
R.'-jvO
表名 as 别名 :plN<8
表名 别名 4Fs5@@>X
例如上面语句可用表的别名格式表示为: RM|2PG1m
2uZ4$_
SELECT username,b.cityid R q
|,@
FROM usertable a,citytable b fWk,k*Z9
WHERE a.cityid=b.cityid )F,IPAA#
nkTpUbS'f?
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 p()#+Xy
lC8Z@wkjO
例如: 2>+(OL4l
]9]o*{_+(f
SELECT a.au_fname+a.au_lname oo4aw1d
FROM authors a,titleauthor ta :/<SJ({q
(SELECT title_id,title 3[F9qDAy
[@;q#.}Z
FROM titles ,*MAteD
WHERE ytd_sales>10000 #Ex NiFZ
) AS t xP+`scv*m#
WHERE a.au_id=ta.au_id *l{GD1ZDk
AND ta.title_id=t.title_id 4}xw&x
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。