一、 简单查询 z$Qy<_l
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 jLw|F-v-l<
6=*n$l#}
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 xhB-gG=
_,f7D/dq
SELECT nickname,email /03?(n= 3
FROM testtable NL'(/|)
WHERE name='张三' {s=c!08=
^S(QvoaQ
(一) 选择列表 A-h[vP!v|
.}E@7^X
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 (?i4P5s[!
}}oIZP\qM
1、选择所有列 "
BU4\QF-
*@WBaN+
例如,下面语句显示testtable表中所有列的数据: =<AG}by![
j!@,r^(
SELECT * `H9!Z$7G
FROM testtable F'@9kdp
j@4]0o
2、选择部分列并指定它们的显示次序 mILCC}Kt
f?(g5o*2
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 o?I`n*u"X
8:Dkf v
例如: J?1Eh14KZ
*|gl1S
SELECT nickname,email P~PM $e
FROM testtable f9O_M1=|lo
bP%X^q~]A
3、更改列标题 E#cu}zi
b{
tp
qNm~
在选择列表中,可重新指定列标题。定义格式为: t7*F,
}{[JS=A^
列标题=列名 ={jj'X9
列名 列标题 5D mSgP:
cs4IO
O$
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: }|j#C[
vorb? iVf>
SELECT 昵称=nickname,电子邮件=email bzZ7L-yD
FROM testtable DW)X3A(^
4、删除重复行 MFipXE!
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 H)Z$j&S{
f{|n/j;n=C
5、限制返回的行数 'vKae
V}JBv$+ko
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 PeSTUR&
Vw`%|x"Xz
例如: th5UzpB4
*r|13|k
SELECT TOP 2 * #fXy4iL l
FROM testtable %2^V.`0T
SELECT TOP 20 PERCENT * 9j5B(_J^
FROM testtable XMaw:Fgr
z$VVt?K
(二)FROM子句 GY"c1KE$
:J+ANIRI
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 LCb0Kq}*/(
+^.xLTX`$
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: Wxi;Tq9C@_
Q v},X~^R
SELECT username,citytable.cityid g9IIC5
FROM usertable,citytable jPg[LZQ'
WHERE usertable.cityid=citytable.cityid J@J`)
在FROM子句中可用以下两种格式为表或视图指定别名: }Q-Tw,j
c57`mOe/b
表名 as 别名 lGJ&\Lv:
表名 别名 v2YU2-X[
BLm}mb#/{
(二) FROM子句 1\/~>
AU;Iif6
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 x@x5|8:ga
%Kh}6
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: CM t$)
z*o2jz?t4
SELECT username,citytable.cityid bvT$/(7
FROM usertable,citytable `u8(qGg7GF
WHERE usertable.cityid=citytable.cityid r'@7aT&_
在FROM子句中可用以下两种格式为表或视图指定别名: bKh}Y`
ft!D2M
表名 as 别名 x@|10GC#:
表名 别名 _J,*0~O$
例如上面语句可用表的别名格式表示为: Jt)J1CAYo
F'ez{B\AX
SELECT username,b.cityid gUiZv8C
FROM usertable a,citytable b DP!8c
WHERE a.cityid=b.cityid J@rBrKC
Ki /j\
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 JQW7y!Z
D"{%[;J
例如: V0_^==Vs
d^"|ESQEU
SELECT a.au_fname+a.au_lname drp< f1`l8
FROM authors a,titleauthor ta Tq8U5#NF
(SELECT title_id,title uTy00`1
C @P$RVS
FROM titles -y/Y%]%0
WHERE ytd_sales>10000 qporH]J-E
) AS t Ze?H
WHERE a.au_id=ta.au_id }xgs]\^,73
AND ta.title_id=t.title_id yXf+dMv
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。