一、 简单查询 :5zO!~\
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 *L5L.: Ze
a{iG0T.{Yh
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 c+u) C%g
y|%lw%cSe
SELECT nickname,email (<yQA. M
FROM testtable PLWx'N-kqL
WHERE name='张三' &&n-$WEl
M5B?`mTl
(一) 选择列表 i^/D_L.
zQx7qx
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 WtbOm
j,g.Eo
1、选择所有列 R(A"6a8*
T( bFn?
例如,下面语句显示testtable表中所有列的数据: Y.o-e)zX
<V*M%YWs
SELECT * zj'uKBDl
FROM testtable nIqmora
K-7i4
~
2、选择部分列并指定它们的显示次序 >c@1UEwkm
y7#vH<
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 y &%2
s KOy6v
例如: ?;Ge/~QU5
Ks^EGy+O:-
SELECT nickname,email d#nKTqSg
FROM testtable <k2]GI-}h
nL*
SNQ_
3、更改列标题 ,m.IhnCV\
RkBbu4uQ-
在选择列表中,可重新指定列标题。定义格式为: :WdiH)Zv
W_G'wU3R
列标题=列名 lmr:PX
列名 列标题 (~n0,$
wz5*?[4
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: 0t}&32lL&
Amvl/bO
SELECT 昵称=nickname,电子邮件=email (B;rjpK
FROM testtable WUqfY?5
4、删除重复行 J9/}ZD^
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 u:&Lf
G |vG5$Nf
5、限制返回的行数 97(*-e= e
9p<ZSh
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 T=->~@5
C9FQo7
例如: 8Dy;'BtT
k-\RdX)E
SELECT TOP 2 * !`#xFRHe
FROM testtable 'x!5fAy
SELECT TOP 20 PERCENT * 421ol
FROM testtable tsu Mt
DU-&bm
(二)FROM子句 G2}e@L0
fP:g}Z
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 )%&~CW+
xA2"i2k9
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: ,_2ZKO/k$
Kdwt^8Umh
SELECT username,citytable.cityid X
Sw0t8
FROM usertable,citytable 2N:|B O>
WHERE usertable.cityid=citytable.cityid QGQ>shIeZ
在FROM子句中可用以下两种格式为表或视图指定别名: IXef}%1N?
{z/Y~rf
表名 as 别名 'rQ>Z A_8
表名 别名 ')>&:~
%2D9]L2Up
(二) FROM子句 ULkhTB
$,~D-~-
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 qA6;Q$
:vk TV~
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: b$:<T7vei
<) \
SELECT username,citytable.cityid 7}e73
FROM usertable,citytable $.2#G"|
WHERE usertable.cityid=citytable.cityid 8%wu:;*]%
在FROM子句中可用以下两种格式为表或视图指定别名: /2e&fxxD
lUd;u*A
表名 as 别名 9vZD?6D,n
表名 别名 N8^AH8l
例如上面语句可用表的别名格式表示为: >ps=z$4j*
Xn
1V1sr
SELECT username,b.cityid Q5H!
^RQm
FROM usertable a,citytable b iFy_D
WHERE a.cityid=b.cityid /!mF,oR!
CQx#Xp>=s
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 >3a<#s{%
=
j,Hxq
例如: Y[ciT)
TxD,A0
SELECT a.au_fname+a.au_lname 54%@q[-
FROM authors a,titleauthor ta 'dstAlt?
(SELECT title_id,title x4C}AyR
IE|$mUabm
FROM titles plRBfw>]N
WHERE ytd_sales>10000 M3U*'A\
) AS t zFqlTUD`t
WHERE a.au_id=ta.au_id VNcxST15a
AND ta.title_id=t.title_id wjm _bEi
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。