一、 简单查询 CWM_J9f
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 ~ ^)4*@i6
EB[B0e7}
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 lag%}^
^es/xt
SELECT nickname,email TllIs&MCe
FROM testtable O\)rp!i
WHERE name='张三' A \~tr
<5l!xzvw
(一) 选择列表 ,{{Z) "qaH
M`.v/UQn
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 {~eVZVv
%n>*jFC
1、选择所有列 @ykM98K
I0C$
例如,下面语句显示testtable表中所有列的数据: [V.#w|n
)nA fT0()0
SELECT * Ct 30EZ
FROM testtable h$q=NTV
~!TRR.
2、选择部分列并指定它们的显示次序 #Up
X
5<L+T
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 <LA!L
2$gOe^ &
例如: O{nM
yB
I]Jz[{~1
SELECT nickname,email D]$X@2A
FROM testtable o"@GYc["
jsnk*>j
3、更改列标题 ayoqitXD?
1A-ess\
在选择列表中,可重新指定列标题。定义格式为: R3gg{hQ
\v[?4[
列标题=列名 YVB\9{H?
列名 列标题 ld/\`s[i
1<d|@9?9`
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: 7.`:Z_
a 9f%p
SELECT 昵称=nickname,电子邮件=email
oN7JNMT
FROM testtable y(0";\V
4、删除重复行 IJV1=/NJW
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 '"14(BvW
5t~p99#?
5、限制返回的行数 'J"m`a8no
E]j2%}6Z%
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 \dw*yZ^
QIZbAnn_
例如: D "9Hv3
gl~>MasV&
SELECT TOP 2 * mu}T,+9\
FROM testtable t^-yK;`?q:
SELECT TOP 20 PERCENT * \w\{x0u
FROM testtable Ju.B!)uS#
WaYT7 :
(二)FROM子句 +Q6}kbDI
1Ydym2
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 maR5hgWCHe
[<p7'n3x
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: DKxzk~sOM
XKt">W
SELECT username,citytable.cityid ts3BmfR?
FROM usertable,citytable Km9Y_`?
WHERE usertable.cityid=citytable.cityid yYM_
在FROM子句中可用以下两种格式为表或视图指定别名: XF 8$D
YFY$iN~B,
表名 as 别名 0755;26Bx
表名 别名 WN%KATA
7BDRA},o
(二) FROM子句 ?XNQ_m8f
*iVCHQ~
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 WbW@V_rr
bhWH
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: WYklS<B[
]5}C@W@_
SELECT username,citytable.cityid 46cd5SLK
FROM usertable,citytable DYKJ Vn7w
WHERE usertable.cityid=citytable.cityid 'Bv)UfZ
在FROM子句中可用以下两种格式为表或视图指定别名: 1hn4YcHb
!9knFt43
表名 as 别名 O>j_x W]V
表名 别名 <i(<|/$
例如上面语句可用表的别名格式表示为: ` kG}NJf
J` J^C
SELECT username,b.cityid kt*""&R
FROM usertable a,citytable b 8DsXw@o
WHERE a.cityid=b.cityid 1IRlFC
Zw`vPvb!
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 {q-<1|xj/J
"Wz#<! .r
例如: . w_oW mD
F qW[L>M'
SELECT a.au_fname+a.au_lname R|Lr@k{6+r
FROM authors a,titleauthor ta 05cyWg9a
(SELECT title_id,title - s,M+Q(<
U 3f a*D
FROM titles =6sL}$
WHERE ytd_sales>10000 Pgg\(D#X`
) AS t ub0uxvz
WHERE a.au_id=ta.au_id 5}uH;E)4
AND ta.title_id=t.title_id ?4 fXCb]7
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。