一、简单查询 /XjN%|
mQFa/7FX
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 ::0aY;D2
G^ K*+
表或视图、以及搜索条件等。 hzW{_Q.|?
>@z d\}@W
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 j,Pwket
m\1VF\
SELECT nickname,email ~NA1SZ{Y+
_jiQL66pY
FROM testtable 4Fh&V{`W
`3]Rg0g&Xe
WHERE name='张三' tx gvVQ
NYGmLbq
(一)选择列表 <&KLo>B^
/cM 5
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 ^zKt{a
a4Ls^
量和全局变量)等构成。 2\DTJ`Y,
(y%%6#bd
1、选择所有列 vuAQm}A4'g
0T 1HQ
例如,下面语句显示testtable表中所有列的数据: jC#`PA3m=
5XI;<^n2
SELECT * QCVsVG!sN
,I/2.Q})[
FROM testtable v/]Qq
lt&$8jh
2、选择部分列并指定它们的显示次序 OTnu{<.a
%3ou^mcj
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 7s0)3HR}
0S%tsXt+
例如: {qJHL;mP:8
mJSK; @w<O
SELECT nickname,email @Q/x&BV
?e"Wu+q~L
FROM testtable \I'f3
+SAk:3.#CV
3、更改列标题 ~*jsB=XM/
@gH(/pFX
在选择列表中,可重新指定列标题。定义格式为: >6*(}L9
Y>xi|TWN
列标题=列名 nXv 7OEpTx
w/?nUp
列名 列标题 aytq4Ts
X!HDj<
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 I/oIcQS!k
~8XX3+]z:X
标题: hN Z4v/
vsu@PuqH
SELECT 昵称=nickname,电子邮件=email x%_qJ]o
P'-JbPXU
FROM testtable 9Q,Msl4n
^fFtI?.6jI
4、删除重复行 s"pR+)jf1D
A4~D#V
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 _!CK
|De!ti
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 }pbBo2
^2C0oX
5、限制返回的行数 IXbdS9,>F
IlcNT_
5a8
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 UOn! Y@
7( yXsVq
表示一百分数,指定返回的行数等于总行数的百分之几。 }f<fgY
[?Mc4uT{
例如: C/{nr-V3u
*p" "YEN
SELECT TOP 2 * `G_(xN7O
#citwMW
FROM testtable X{5v?4wI
_F}IF9{?G
SELECT TOP 20 PERCENT * _#/!s]$d#
[
c ~LY4:
FROM testtable H.jLGe>
:5TXA
(二)FROM子句 0ClX
#)W8.
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, ?)Tz'9l
?l)}E
它们之间用逗号分隔。 ^Nd|+}
dH
^b)G4
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 tqff84
kA7~Yu5|
所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 c%q}"Y0oh
J0IdFFZ|w
使用下面语句格式加以限定: ;FV~q{
!L&=?CX
SELECT username,citytable.cityid o 8~f
I
ybl;u
FROM usertable,citytable &