一、 简单查询 y<R5}F
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 v<l]K$5J&
W)
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 a"g\f{v0AR
zn^ G V
SELECT nickname,email Rh
]XJM
FROM testtable Qu8=zI>t
WHERE name='张三' ZDI?"dt{
O6b+eS
(一) 选择列表 ?LU>2!jN
V7gL*,3>=
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 eUR+j?5I
N;!!*3a9=
1、选择所有列 8$iHd
|{ZdAr.;
例如,下面语句显示testtable表中所有列的数据: x*TJYST
k_?OEkgUh
SELECT * | lzcyz
FROM testtable a[}?!G-Wt|
+`B^D
2、选择部分列并指定它们的显示次序 !a!4^zqp
eBmHb\
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 PGYx]r
+tg${3ti_
例如: Rm$( X5x>o
>nvK{6xR:
SELECT nickname,email JHZjf7g$k
FROM testtable Sz1 J4$5
q?]KZ_a
3、更改列标题 J#3[,~
MMD=4;X
在选择列表中,可重新指定列标题。定义格式为: \xC#Zs[<
.Xe_Gp"x
列标题=列名 368 g>/#'
列名 列标题 u:l<NWF^
@PQd6%@
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: tk8\,!9Q
_;S~nn
SELECT 昵称=nickname,电子邮件=email .i|nn[H &
FROM testtable <~_XT>`y
4、删除重复行 z_{_wAuY
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 fF9hL3h?)
Vl<7>
5、限制返回的行数 ~P~q'
OmfHrlA
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 S-7 C'dc
pbWjTI $
例如: jt* B0'Sa
q3K}2g
SELECT TOP 2 * mC(YO y
FROM testtable ]\}MSo3
SELECT TOP 20 PERCENT * T;PLUjp}
FROM testtable -'*<;]P+.
01RW|rN
(二)FROM子句 H}CmSo8&
q68m*1?y
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 9GTp};Kg
3%Q9521
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: #@1(
4HGS
SELECT username,citytable.cityid STg}
Z
FROM usertable,citytable "i*gJFW|
WHERE usertable.cityid=citytable.cityid V(io!8,
在FROM子句中可用以下两种格式为表或视图指定别名: Rs"G8Q9Q
n)35-?R/M
表名 as 别名 'W("s
表名 别名 HN5,MD[
qFq$a9w|@
(二) FROM子句 WoNY8
8hT
]-SJ";aU
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 /?z3*x
9 v8^uPA
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: #<u;.'R
Ra
H1aS(
SELECT username,citytable.cityid :l iDoGDi
FROM usertable,citytable PqF&[M<)
WHERE usertable.cityid=citytable.cityid /J&DYxl":
在FROM子句中可用以下两种格式为表或视图指定别名: [9MbNJt 8~
3Z#WAhfS:
表名 as 别名 ?*7Mn`
表名 别名 '^$+G0jv
例如上面语句可用表的别名格式表示为: @^ m0>H
"{t]~urLd
SELECT username,b.cityid asCcBp
FROM usertable a,citytable b yg~@}_C2_
WHERE a.cityid=b.cityid n;>=QG
-v
*8)va
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 $P%cdJ T0
~$"2,&
例如: *BF[thB:a
L*vKIP<EMM
SELECT a.au_fname+a.au_lname gA@Zx%0j
FROM authors a,titleauthor ta ]T2Nr[vu
(SELECT title_id,title E7aG&K
n"Bc2}{
FROM titles :rjfAe=s
WHERE ytd_sales>10000 apfr>L3
) AS t S)4p'cUwq
WHERE a.au_id=ta.au_id HTvUt*U1
AND ta.title_id=t.title_id _)~VKA]""
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。