一、 简单查询 v)JQb-<
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 :C42yQAP
)!dELS\ix
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 <.3@-z>w2,
tC+9W1o
SELECT nickname,email b*Ipg8n+
FROM testtable .<Z7K @
WHERE name='张三' a73b/_zZ=
^&uWAQohL
(一) 选择列表 3w )S=4lB
i:#R
U^R
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 ilK8V4k<T)
|PN-,f{ -
1、选择所有列 |xzqYu?o
+!POKr
例如,下面语句显示testtable表中所有列的数据: 6,G^iv6H
5q]u:
SELECT * e:[Kp6J
FROM testtable hk ./G'E
T
GMHo{]
2、选择部分列并指定它们的显示次序 89l_%To
}jU{RR%6B
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 &3{:h
:kZ2N67
例如: p!'wOThO`
z@y*
jT
SELECT nickname,email $#4z>~0
FROM testtable _0F6mg n
IJ,,aCj4g
3、更改列标题 VhSKtD1
xSb/98;
在选择列表中,可重新指定列标题。定义格式为: ?p5RSt
u\qyh9s
列标题=列名 fJv0 B*
列名 列标题 NtTLvO6
lO,
2
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: nE-=7S L
b&~uK"O'7d
SELECT 昵称=nickname,电子邮件=email #Mbt%m
FROM testtable !^axO
4、删除重复行 ^e>v{AE%
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 4v2(YJ%u
( kp}mSw
5、限制返回的行数 ZJ=C[s!wu
EZP2Bb5g
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 0nie>
(%0X\zvu/
例如: dc&Qi_W
d+T]EpQJ*
SELECT TOP 2 * n]Dq
FROM testtable L&3=5Bf9
SELECT TOP 20 PERCENT * ^ioTd
FROM testtable uFdSD
\((>i7C
(二)FROM子句 =As'vt
0
*C\4%l
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 7
oZ-D~3
,A6*EJ\w
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: z5'VsK:
WgPL4D9=
SELECT username,citytable.cityid
7/7A
FROM usertable,citytable Wq{' ZN
WHERE usertable.cityid=citytable.cityid )%j)*Ymz;
在FROM子句中可用以下两种格式为表或视图指定别名: ==FzkRA)
X_!mZ\H7
表名 as 别名 30H:x@='9
表名 别名 +}+hTY$a
B8s|VI
(二) FROM子句 }Xc|Z.6
CKBi-q FH
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 Mx r#
{iQ<`,)Y
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: /asyj="N7
&H4UVI
SELECT username,citytable.cityid u|:VQzPd-
FROM usertable,citytable }p- %~Y
WHERE usertable.cityid=citytable.cityid 5R ec}H
在FROM子句中可用以下两种格式为表或视图指定别名: :m$%D]WY
^d=Z/d[
表名 as 别名 {Zseu$c
表名 别名 _^'k_a
例如上面语句可用表的别名格式表示为: ;%k%AXw
>8AtT=}w
SELECT username,b.cityid 8dZH&G@;
FROM usertable a,citytable b zIAMM
WHERE a.cityid=b.cityid oNCDG|8z
fGe{7p6XV*
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 hXrvb[6
pP/o2
例如: }bnkTC
Xr)d;@yi
SELECT a.au_fname+a.au_lname fglZjT
FROM authors a,titleauthor ta qJ!oH&/cD
(SELECT title_id,title W@S9}+wl*
sN?:9J8
FROM titles YJL=|v
WHERE ytd_sales>10000 11-uJVO~*
) AS t ^y6CV4T+
WHERE a.au_id=ta.au_id h`GV[Oo :
AND ta.title_id=t.title_id O0{v`|w9+
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。