一、 简单查询 (od9adSehV
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 ,\=,,1_
R&]#@PW^
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 *32hIiCm
=/MA`>
SELECT nickname,email jdAjCy; s!
FROM testtable BXB ZX@jVk
WHERE name='张三' 7Nt6}${=z
[e;c)XS[
(一) 选择列表 zM2_z
MC;2.e`
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 EK$3T5e
nv/'C=+L
1、选择所有列 )@[##F2
?_nbaFQK3
例如,下面语句显示testtable表中所有列的数据: :SvgXMY@
z6;6 o!ej
SELECT * 'nSo0cyQ
FROM testtable g=]VQ;{
VH7nyqEM
2、选择部分列并指定它们的显示次序 jPa"|9A
V3<H8pL
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 ?]PE!7H
b ]u01T-
例如: %+HZ4M+hV
b.|k j
SELECT nickname,email Lv m"!!
FROM testtable )uu1AbT+e
P:&X1MC
3、更改列标题 = 4 wf
?Es(pwJB
在选择列表中,可重新指定列标题。定义格式为: SZ(]su:
(]N- HN]v
列标题=列名 qPF`=#
列名 列标题 cogIkB&Ju
,u_ Z0S M
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: u.dYDi
2R];Pv
SELECT 昵称=nickname,电子邮件=email 8(ej]9RObU
FROM testtable )J{.z
4、删除重复行 |Q+:vb:
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 '|^x[8^
BnUWg ^E
5、限制返回的行数 W!t =9i
ble[@VW|
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 +FJ+,|i
y7~y@ 2
例如: o&ETs)n|
.W
s\%S
SELECT TOP 2 * w;;9YFBdM
FROM testtable 6W[~@~D=
SELECT TOP 20 PERCENT * g0ks[ }f-
FROM testtable XR|U6bf]
Gy)2
(二)FROM子句 3t9Weo)
<\ EJ:
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 !
G3Gr
AW8*bq1
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: B;e (5y-
LY;FjbyU
SELECT username,citytable.cityid 6|n3e,&A2
FROM usertable,citytable o2~P
vef
WHERE usertable.cityid=citytable.cityid z"P/Geb:O
在FROM子句中可用以下两种格式为表或视图指定别名: `3yK<-
Z@,[a
表名 as 别名 d$hBgJe>N
表名 别名 Q|xa:`3?
*}) W>
(二) FROM子句 7!Qu+R
Z0%:j\W4c
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 JIPBJ
qWM+!f
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 5Mz:$5Tm
1]69S(
SELECT username,citytable.cityid Kf1NMin7
FROM usertable,citytable +\]Gu(z<
WHERE usertable.cityid=citytable.cityid )M><09
在FROM子句中可用以下两种格式为表或视图指定别名: DS=$*
Trk
`vZX"+BAh
表名 as 别名 Y'C1L4d
表名 别名 =M=v;
,I-
例如上面语句可用表的别名格式表示为: 8W Etm}
PdtL
Cgd
SELECT username,b.cityid 1xI
FROM usertable a,citytable b _ee<i8_Va
WHERE a.cityid=b.cityid ly:2XvV3~
T~L&c
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 e|N~tUVrrN
>L')0<!&
例如: +pRNrg?k
A `{hKS
SELECT a.au_fname+a.au_lname }O Y/0p-Z
FROM authors a,titleauthor ta X,{ 3_
(SELECT title_id,title ALj~e#{;z
BP}@E$
FROM titles h4#'@%
WHERE ytd_sales>10000 1mD)G55Ep
) AS t dci<Rz`h
WHERE a.au_id=ta.au_id 5th?m>
AND ta.title_id=t.title_id [ ou$*
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。