一、 简单查询 %2XHNW
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 X_$Cb<e
0Sgaem`
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 rz@=pR :
QrYpZZ;
SELECT nickname,email kX>f^U{j
FROM testtable YEj8S5"Su\
WHERE name='张三' <-,gAk)u
b#K:_ac5
(一) 选择列表 AO=h
23ZI
~wJFa'2
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 8"fD`jtQ
IuNiEtKx
1、选择所有列 .8y3O]
hA33K #bC
例如,下面语句显示testtable表中所有列的数据: 49w=XJ
)w0AC"2O~
SELECT * 1. rj'
FROM testtable 2U; t(,dn'
,=|ZB4HA
2、选择部分列并指定它们的显示次序 v7DE
unBy&?&p
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 U5He?
D,g1<:<
例如: <j5NFJ9
x}Aw)QCh+r
SELECT nickname,email ,{LG4qvP
FROM testtable FKT1fv[H
DXa-rk8
3、更改列标题 tPGJ<30
t| 'N+-T3
在选择列表中,可重新指定列标题。定义格式为: |j VM&R2s
Qbyv{/
列标题=列名 ~Q>_uw}g#
列名 列标题 <~n$1aA
sRrzp=D
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: hYM@?/(q
]@0NO;bK>F
SELECT 昵称=nickname,电子邮件=email Vgyew9>E
FROM testtable )JNSZB
4、删除重复行 k:#P|z$UD
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 CJXg@\\/
#*g5u{k'P
5、限制返回的行数 h<SQL97N
a\:VREKj,
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 Xixqxm*8
* C6a?]
例如: YI.w-K\
r,Nq7Txn?
SELECT TOP 2 * o`q_wdy?
FROM testtable "eWYv3z~-
SELECT TOP 20 PERCENT * `p7&>
BOA
FROM testtable }LijnHH.
rJ!{/3e
(二)FROM子句 BZXUwqEh
e4z1`YLsG
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 (Gw,2-A
-~QHqU.
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: eU N"w,@y
}A:<%N
SELECT username,citytable.cityid {M?vBgR\B
FROM usertable,citytable $8'O
WHERE usertable.cityid=citytable.cityid h'$9C
在FROM子句中可用以下两种格式为表或视图指定别名: ^-a8V'
/g$G_}
表名 as 别名 jOyvDY9\
表名 别名 W{rt8^1
j*
*s^Sg
(二) FROM子句 Eb=#9f%y>&
XbZ*&
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 ?"KC-u|
d)"?mD:m/M
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: l?q%?v8
~(@ E`s&{
SELECT username,citytable.cityid a !mf;m
FROM usertable,citytable Y2[A2Uy$ef
WHERE usertable.cityid=citytable.cityid 03iv3/{H
在FROM子句中可用以下两种格式为表或视图指定别名: >R2SQA o
|P.6<
表名 as 别名 \xUe/=
表名 别名 #%FN>v3e
例如上面语句可用表的别名格式表示为: v i)%$~
)Y8",Ig
SELECT username,b.cityid snt(IJQ
FROM usertable a,citytable b q,3;m[cA
WHERE a.cityid=b.cityid QERU5|.wc
{q3H5csFq
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 P/ oXDI8
-.|4Y#b:&
例如: 07/L}b`P
3F#+~^2
SELECT a.au_fname+a.au_lname a@pz*e
FROM authors a,titleauthor ta 3~qR
(SELECT title_id,title OGrBUP
t
nS+5F
FROM titles $) 5Bf3P0
WHERE ytd_sales>10000 :EtMH(
) AS t tyDY'W\]
WHERE a.au_id=ta.au_id (LtkA|:
AND ta.title_id=t.title_id "W#t;;9Wz
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。