SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create, 以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。下面,我们就来详细介绍一下SQL语言的基本知识。 9 e7 t7 W K* m& J& G/ \8 _" o* p
" ~% l' C, V6 r! |' |* a2 O8 r, F, V 4 Z4 i9 e$ [: a$ d6 o5 S: Y v* q
7 p/ V$ j, Q2 u7 l! _6 v
< align=center>$ l0 q$ f% T& t
<FONT size=3><B>数据库表格</B></FONT>5 M+ s; q- D. ~2 g0 |% t& o
! a/ h: H/ i, w1 g5 \' C: T" W 1 u3 g. L' ?% H8 D7 |7 Q
一个典型的关系型数据库通常由一个或多个被称作表格的对象组成。数据库中的所有数据或信息都被保存在这些数据库表格中。数据库中的每一个表格都具有自己唯一的表格名称,都是由行和列组成,其中每一列包括了该列名称,数据类型,以及列的其它属性等信息,而行则具体包含某一列的记录或数据。以下,是一个名为天气的数据库表格的实例。3 e; M) w* ~3 |% o) J! w
, @0 ^- ?+ B! h5 X7 i0 C <DIV align=center>4 |% Q; y: _1 H, f( X
<CENTER> . C1 [4 ?2 H6 T3 t+ g0 Z4 F7 H( N: U <TABLE cellSpacing=1 cellPadding=7 width=384 borderColorLight=#ffd048 border=1> 4 {3 g& g7 B% K7 |2 m1 s& ~6 C <TBODY>4 P- B; ?2 _+ _: ~
<TR>& Q+ I; t3 g% S' t+ f
<TD vAlign=top width="29%">城市 </TD> ) r! ~2 w6 M% G <TD vAlign=top width="36%">最高气温 </TD> 9 R+ m; E9 G& H- Y <TD vAlign=top width="36%">最低气温 </TD></TR>4 D' @3 K8 U0 {) C" p
<TR> ! M" x5 J9 G; t' R. Z! b$ G3 l7 N <TD vAlign=top width="29%">北京 </TD> 8 X$ H {" y# X* G i& {$ c <TD vAlign=top width="36%">10 </TD># q: M1 ?: Z4 x J. ~5 {
<TD vAlign=top width="36%">5 </TD></TR> 4 G% @7 B( ~7 x6 } <TR>3 d4 `3 T- h8 U* A
<TD vAlign=top width="29%">上海 </TD> & h y& L+ c* y2 k2 u. _ C <TD vAlign=top width="36%">15 </TD>9 O& {/ W: N& Y4 V3 j. d" t* v
<TD vAlign=top width="36%">8 </TD></TR> e _1 X! C8 d5 n9 t <TR>4 \* v1 J) i# [3 K. z1 {! E. X
<TD vAlign=top width="29%">天津 </TD> - n! x- M! ]& b- a <TD vAlign=top width="36%"><FONT size=3>8</FONT></TD>& G6 b* }; }5 Z& p0 u; J" J
<TD vAlign=top width="36%"><FONT size=3>2</FONT> </TD></TR> . O( \% _' i/ Z) v <TR> ; j2 |- p! J: n. r5 C <TD vAlign=top width="29%"><FONT lang=ZH-CN face=宋体>重庆</FONT></TD> 0 ]7 |1 r1 m/ k <TD vAlign=top width="36%"><FONT size=3>20</FONT></TD>9 S# ?, ~) K3 r- e0 H) o: V/ X
<TD vAlign=top width="36%"><FONT size=3>13</FONT> </TD></TR></TBODY></TABLE></CENTER></DIV> 6 a: n7 f. J% i+ n < align=justify> ) l$ l5 f% z1 M) }5 n4 ?, f 该表格中“城市”, “最高气温”和“最低气温”就是三个不同的列,而表格中的每一行则包含了具体的表格数据。 7 l, t( l7 [ J - s8 Z) k e; i
< align=center> + i8 r0 [% g- m <FONT size=3><B>数据查询</B></FONT> , {' Q' R1 S; e+ J; A ' F) g2 }% t) B; J( }2 {
' i$ I, o L1 T G1 E
在众多的SQL命令中,select语句应该算是使用最频繁的。Select语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。Select语句的语法格式如下: . A+ y* q- s, z+ ?: x [/ O, R* ?8 D& c, {' W , r8 F; b* S# x s) ] select column1 [, column2,etc] from tablename+ S4 g% w" j) @& m( T
% b$ B2 w5 h. f. c# N$ ]
" X* S& u+ y6 p
[where condition]; 5 o3 i9 S. _+ L c$ l) c 1 Y" n, n+ L/ e" e7 H
& O' x% A. U1 H7 ~ ([] 表示可选项) % q8 e: M$ w0 t * W8 u) h0 A {8 M' }9 z$ l: ~3 u Y& O: b6 c8 z6 \ select语句中位于select关键词之后的列名用来决定那些列将作为查询结果返回。用户可以按照自己的需要选择任意列,还可以使用通配符“*”来设定返回表格中的所有列。; R8 o9 i$ ~3 j% G
0 `$ }* O9 K1 {) ~; u
D! b0 x- x; N- E ]8 B: @/ L6 A
select语句中位于from关键词之后的表格名称用来决定将要进行查询操作的目标表格。 2 m, D7 R- K* k' I1 P ! |9 w* i L% ]* e$ W x ) S/ ~" h- d2 J1 y$ O! Y/ ~5 W# L2 @ Select语句中的where可选从句用来规定哪些数据值或哪些行将被作为查询结果返回或显示。 H/ S$ z4 X: A+ f
3 O' f+ M; q5 D* j ^ - }, |$ e+ N( |0 ~ 在where条件从句中可以使用以下一些运算符来设定查询标准:1 s8 A% r+ H6 N* N; D* B
* T9 }+ Q' w& X+ _3 B% y 2 ?, \& U0 M" Q$ g" r& J = 等于& k/ X. G. a1 q. G
* s7 i4 T1 U, ]* P ; R$ _. F/ \4 j1 ]: M > 大于 1 g. @8 f, \" A& L) i2 J- R% b; D * x" I+ B, p. f: l8 \
8 }, D3 B- X8 A6 b1 D6 z5 {: O$ q/ I
< 小于2 l7 N; y3 P( n! V- x6 e- v. r
( {) l' |/ `1 k+ @ 8 C4 k9 ` V0 q C# U
>= 大于等于 ! E( y6 d. b4 R! a 5 k. R, ?, p/ D0 M8 U
6 R3 g' G+ S* x, W3 L8 L$ ^ <= 小于等于 " z6 D$ _$ A+ v( y 1 N6 M, j5 B6 |0 T
1 v, X, ~) k; @# Y
<> 不等于 V+ ~ V; q4 {* p& s 5 Z+ P4 B4 [% V. B R( _- x
# k% Q: A6 _: q
除了上面所提到的运算符外,LIKE运算符在where条件从句中也非常重要。LIKE运算符的功能非常强大,通过使用LIKE运算符可以设定只选择与用户规定格式相同的记录。此外,我们还可以使用通配符“%”用来代替任何字符串。举例如下: % g O( v# J+ t( @ ' W( j: T$ h, B4 e6 T
3 \3 k& Y1 e, P: d1 M
select firstname, lastname, city9 I* u4 A+ \: H" r8 V3 K
1 F* S% o3 s' }/ `! N+ X ( c( v! M. ?) A
from employee ) }& t8 J. D) S, k/ {9 y& I. v % B0 D6 c* p' p5 Q
4 \; K N% t- j
where firstname LIKE ‘E%’; ' e, c3 B& b& b( S 2 {$ w# G2 e7 p4 m$ h4 i$ G- F
- x2 Y. F# t' `1 q. i9 B0 ?
(注意,字符串必须被包含在单括号内) 7 k# o' U& R' g% z+ @ % m4 S; b0 ]2 S9 n9 l+ b9 P8 F
2 E! I7 V4 k' u6 F" D- ^1 h& U
上述SQL语句将会查询所有名称以E开头的姓名。或者,通过如下语句:, u% ?6 g) O- E5 B! D! e0 _
* ^7 x; E7 m. X7 |1 y 2 M& q2 F9 M* q# R1 c- a( L select * from employee. b; x3 x' L! q7 @, l
) [% d$ f6 b* @8 ]3 l6 K+ c + T+ J9 V5 D" C5 T5 R where firstname = ‘May’; : {! @7 |- q2 [0 H. J5 C % n" C/ f8 M* z2 e, C ; P; h9 \& `; F7 Y 查询所有名称为May的行。