一、 简单查询 -XYvjW,|
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 z:Am1B
ZTR9e\F
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 N
R
c4*zQJ
< $zJi V
SELECT nickname,email 'lIs`Zc5N
FROM testtable 1T|f<ChIF<
WHERE name='张三' eB0exPz%
<8WFaP3,
(一) 选择列表 (3n "a'
snaAn?I4
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 "0eX/rY%
D!`;v Z\>
1、选择所有列 |4\1V=(
=Jm[1Mgt
例如,下面语句显示testtable表中所有列的数据: G+dq
*/
O3 sV)
SELECT * e)sR$]i:v
FROM testtable _xKn2 ?d8g
)oIh?-WL
2、选择部分列并指定它们的显示次序 Pb&tWv\ql
sK2N3B&6
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 -6[DQB
v,<14w
例如: R"W}\0k
Lt*P&
SELECT nickname,email G9:XEEN
FROM testtable =WTSaC
XIwJhsYZ'9
3、更改列标题 J,}h{-Xy`
m?w_
]
在选择列表中,可重新指定列标题。定义格式为: m. pm,
P&0eu
列标题=列名 w/|&N>ZOx
列名 列标题 K6DN>0sY
5Zq
hyv=
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: l<6GZ
>.meecE?Q
SELECT 昵称=nickname,电子邮件=email
33oW3vS
FROM testtable c}(H*VY2n
4、删除重复行 Z- feMM
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 C8m 9H8Qm
b,'O|s]"Sc
5、限制返回的行数 01A{\O1$j
`
-_! %m/
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 8w5}9}xF
X%yG{\6:
例如: }$_@yt<{W@
nH#>_R
(
SELECT TOP 2 * C hF~
FROM testtable Y-ao
yoNS
SELECT TOP 20 PERCENT * 5%jhVys23
FROM testtable <YyE1|
C:B 7%<
(二)FROM子句 KlT:&1SB9
`nF SJlr&
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 7ws<' d7/
a{`hAI${
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: ~HmH#"VP
h%/BZC^L]|
SELECT username,citytable.cityid Sgi`&;PF
FROM usertable,citytable D?n6h\h\$%
WHERE usertable.cityid=citytable.cityid <K0epED
在FROM子句中可用以下两种格式为表或视图指定别名: ?c#s}IH
-Q20af-
表名 as 别名 c5ij2X|I
表名 别名 Y5aG^wE[:
JI>Y?1i0O
(二) FROM子句 $cSUB
}a;xs};X;
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 R1zt6oY
#Y=^4 U`
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: gH//@`6
T]tP!a;K
SELECT username,citytable.cityid +p%3pnj:K
FROM usertable,citytable syw1Z*WK
WHERE usertable.cityid=citytable.cityid b6-N2F1Fs
在FROM子句中可用以下两种格式为表或视图指定别名: L;3%8F\-.
AYn65Ly
表名 as 别名 Fx^wV^q3
表名 别名 YPGM||
例如上面语句可用表的别名格式表示为: ji ?Hw
%n|
SELECT username,b.cityid _wKwiJs
FROM usertable a,citytable b Jxvh;
WHERE a.cityid=b.cityid h ;*x1BVE
YYQvt
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 F{x+1hct0
sa'1hX^@
例如: /"X_{3dq?
IAO5li3
SELECT a.au_fname+a.au_lname W9?*
~!
FROM authors a,titleauthor ta AX`Tku
(SELECT title_id,title #QwkRzVoy
%5e|
FROM titles c!\Gj|
WHERE ytd_sales>10000 *^-AOSVt,
) AS t a&'9[9E1
WHERE a.au_id=ta.au_id |.)LZP,
AND ta.title_id=t.title_id :qE.(k1@5
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。