一、简单查询 &lGp
/m:
Itz_;+I.Mp
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 5vP*oD
cp.)K!$
表或视图、以及搜索条件等。 <'GI<Hc
u:m]-'
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 Q3oVl^q
?'h@!F%R'
SELECT nickname,email =gfLl1wY[
38Wv&!
FROM testtable /3+7a\|mKr
$orhY D3gv
WHERE name='张三' TAzhD.6C
1RcaE!\p
(一)选择列表 ?"sk"{
rvr Ok
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 dnNc,l&g
E}1[&
量和全局变量)等构成。 u.!Pda
- }
Z
1、选择所有列 ~^VcTSY@<L
s*]1d*B!
例如,下面语句显示testtable表中所有列的数据: H%])>
O'idS`
SELECT * YtIJJH
<cepRjDn
FROM testtable iY*Xm,#
9IIe:
2、选择部分列并指定它们的显示次序 KZDB \T
TR:D
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 "&C'K
4H1s"mP<
例如: b(~NqV!i
6Ajiz_~U
SELECT nickname,email OkFq>;{a
pV>/"K
FROM testtable < ^J!*>
q)!{oi{x(
3、更改列标题 TH6g:YP`7
KUuwScb\
在选择列表中,可重新指定列标题。定义格式为: k87B+0QEL
a(BC(^1!
列标题=列名 S)Ld^0w
\h
#vL
列名 列标题 KWN&nP
+
l"ih+%S
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 tnKzg21%
OwDjUKeN
标题: 5IMh$!/uc
YHeB<v
SELECT 昵称=nickname,电子邮件=email Jnv91*>h8
S!g&&RDx
FROM testtable <y`yKXzBUV
ulVHsWg
4、删除重复行 n}?kQOg0/
Ui1K66{
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 -{P)\5.L
\8F$85g
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 _G'.VSGH
`CHgTkv
5、限制返回的行数 lYy0
]CHMkuP[k
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 #Q|$&b
!5=3Y4bg1
表示一百分数,指定返回的行数等于总行数的百分之几。 i4Fw+Z
,Xb :f/lB
例如: rU'&o) a^
#UGbSOoCtn
SELECT TOP 2 * oA42?I ^
8SKDL[rN
FROM testtable w@oq.K
VDQ&BmJE
SELECT TOP 20 PERCENT * -G*u2i_*
<vbk@d
FROM testtable hr)TC-
!TG"AW
(二)FROM子句 1uD}V7_y"
6|9];)
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, iOD9lR`s
)fCl <KG*
它们之间用逗号分隔。 Kk??}
JXvHsCd?
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 &=s{ +0
r%xNfTa
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 dn`#N^Od
(T`x-wTl
使用下面语句格式加以限定: k"L_0HK
Zl* HT%-5
SELECT username,citytable.cityid b\;QR?16R
d5u,x.R
FROM usertable,citytable 12k)Ek9
I:Z38xz -[
WHERE usertable.cityid=citytable.cityid jp&