一、 简单查询 >{juw&Uu
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 8C2!Wwz`J8
.vXe}%
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 2|LkCu)~,"
y#5;wb<1
SELECT nickname,email t8-LPq
FROM testtable !_h<w ?)
WHERE name='张三' }Yp]A
=JB1 ]b{|
(一) 选择列表 9_pOV%Qs
P87qUC
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 ow,=M%x"0
i- r y5x
1、选择所有列 jVdB- y/r
BmFs6{>~c
例如,下面语句显示testtable表中所有列的数据: oOK&+r7
7 *HBb-
SELECT * Di #E m[
FROM testtable wGnFDkCNz
u/L\e.4
2、选择部分列并指定它们的显示次序 )9>E} SU/
MIwkFI8
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 !,>9?(
I`EgR?5 `
例如: pc<A
,?
%ck/ Z
SELECT nickname,email <2 S?QgR,
FROM testtable 8BwJWxBQ
h-[FUPfuw
3、更改列标题 :KJZo,\
N^K@$bs4^
在选择列表中,可重新指定列标题。定义格式为: Hsz).u
rfxLCiV
列标题=列名 )wz3m L
列名 列标题 )F4P-u
STgYXA(
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: QsH Fk5)
JD$;6Jv3P
SELECT 昵称=nickname,电子邮件=email ziui
FROM testtable QOY M/1U
4、删除重复行 8&9'1X5)8_
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 w97B)Kn6
7 {#^zr
5、限制返回的行数 Tof H=d
NI?YUhg>
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 p=8?hI/bim
$WK~|+"{>
例如: ~gvw6e*[
{F+iL&e)
SELECT TOP 2 * :HG5{zP
FROM testtable rui]_Fn]I
SELECT TOP 20 PERCENT * >vY5%%}
FROM testtable j
/=4f
\d{S3\7
(二)FROM子句 >D/+04w
B>W!RyH8o
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 Q@/358.LA
`.a~G
y
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: H:M;H=0
xu7Q^F#u
SELECT username,citytable.cityid Acib<Mi2!-
FROM usertable,citytable 5 MD=o7O^
WHERE usertable.cityid=citytable.cityid p-o!K\o-1
在FROM子句中可用以下两种格式为表或视图指定别名: x(/{]$h
C|Vz
`FY
表名 as 别名 |cUBS)[)X
表名 别名 iZ-"l3)D
|VD}:
(二) FROM子句 >
H(o=39s
vL"[7'
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 DQOEntw
ON<X1eU
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: OAXF=V F#
vtVc^j4
SELECT username,citytable.cityid #y&O5
FROM usertable,citytable L@HWm;aN
WHERE usertable.cityid=citytable.cityid n:wZL&ZV0
在FROM子句中可用以下两种格式为表或视图指定别名:
Gt;59}
G;3N"az
表名 as 别名 OwM.N+z#T
表名 别名 *
>XmJ6w
例如上面语句可用表的别名格式表示为: oaJnLd90W
c$HZvv
SELECT username,b.cityid ESAFsJ$r;
FROM usertable a,citytable b s5'So@L8
WHERE a.cityid=b.cityid e[a?5,s2
:F`yAB3
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 -<tfbaA
xK3}zN$T
例如: 2{E"#}/
z(&~O;;N#
SELECT a.au_fname+a.au_lname Ho; bgva
FROM authors a,titleauthor ta |}>;wZ[7
(SELECT title_id,title +Tw ]u`
\6U$kMGde
FROM titles $pg1Av7l
WHERE ytd_sales>10000 Tp?l;DU
) AS t ^|1)6P}6
WHERE a.au_id=ta.au_id Hs~u&c
AND ta.title_id=t.title_id z;VabOr^
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。