三、关系数据库的标准语言———SQL 1.SQL概述SQL的英语名称是结构查询语言(Structured Query Language)
# {$ \1 a* [. x1 W( g+ R5 `; T 实际上它的功能包括查询(Query)、操纵(Manipulation)、定义(Definition)和控制(Control)3 L! q- f% y# p
四个方面,是一个综合的、通用的、功能极强的关系数据库语言。SQL支持数据库的三级模式结构。
- M. n0 b- K+ s 2.SQL的数据定义功能SQL的数据定义功能包括三部分:9 e) W+ J. L- ~& I5 m5 [
定义基本表,定义视图和定义索引。它们是:
, ]/ ~6 I. l8 f9 V CREATE TABLE 创建表7 T6 S6 x- _; Z4 b0 z$ G, [0 m" e
CREATE VIEW 创建视图
9 m; O4 X1 y: k1 V CREATE INDEX 创建索引: ?7 [. Y. H: S) f6 n: ~+ R
DROP TABLE删除表
9 o! Y+ M5 Z$ n Y, H7 ^ DROP VIEW 删除视图 P1 q0 T3 Z! n' A( W
DROP INDEX SQL 删除索引
Z$ n2 M @& k( ] 的数据定义功能可用于定义和修改模式(如基本表),定义外模式(如视图)和内模式(如索引)。
$ p D5 x1 D; s: c5 A2 E; W 3.基本表的定义与删除
Z# }/ a7 K9 W' X" A" R+ |' e 定义基本表的语句格式为:( g0 m4 @+ E3 }! c
CREATE TABLE表名 (列名1 类型[NOT NULL]* P7 G- G1 r1 l# N! U$ b9 X$ D' M* w
[,列名2类型[NOT NULL]]…)5 w c# e _+ J$ g, u
[其他参数];
$ l# b2 B h) ^ 其中,任选项“其它参数”是与物理存储有关的参数。根据具体系统的不同而不同。删除基本表的语句为:DROP TABLE表名;删除索引的语句为:DROP INDEX索引名;删除索引的同时把有关索引的描述也从数据字典中删去。但表的内涵仍存在且其数据外延内容不变。把一个基本表的定义连同表上所有的记录、索引以及由此基本表导出的所有视图全部都删除,并释放相应的存储空间。: r' d- \9 R6 h7 g ?: @
4.索引的建立与删除+ r* O) C; q$ f- W4 e8 `
对一个基本表,可以根据应用环境的需要建立若干索引,以提供多种存取方式。通常,索引的建立和删除由DBA或表的主人(即建立表的人)负责。用户不必也不能在存取数据时选择索引。存取路径的选择由系统自动进行。索引的描述存放在数据字典中。建立索引的语句格式为:6 D- X6 ]3 Y: X% U; @, ]
CREATE[UNIQUE] INDEX索引名ON基本表名(列名[次序][,列名[次序]]…)[其他参数];这里的任选项———其他参数是与物理存储有关的参数。索引可以建在一列或几列上。圆括号内是索引列的顺序说明表。其中的任选项———次序,指定了索引值排序的次序。可取ASC(升序)或DESC(降序)。缺省值为升序。UNIQUE表示每一索引值只对应唯一的数据记录。
2 E. U- f! R, B X 5.SQL的数据操纵功能
! V8 f" q: u& X5 P w, z SQL的数据操纵功能包括SELECT,INSERT,DELETE和UPDATE四个语句,即检索和更新(包括增、删、改)两部分工能。检索就是查询。
/ m3 \% m5 G6 C- V5 N/ A SQL更新语句SQL的更新语句
0 A, F& X) K) f2 e% N3 {0 C 包括修改,删除和插入三类语句。
& ?; P( d' x9 b ①修改(UPDATE)(亦称为更新); `5 u- ~# C: h, ^
修改语句的一般格式为:
3 z" h$ T ` [ UPDATE表名9 ^9 D0 H6 P3 V9 [7 v" R1 b
SET字段=表达式[,字段=表达式]…
+ k0 K1 | M- Y4 | [WHERE谓词];
6 p; A5 c( }& m; M7 y" t 修改指定表中满足谓词(或条件)的元组,把这些元组按SET子句中的表达式修改相应属性或字段上的值。. \" T$ _+ a$ s
②删除(DELETE)
. l% N4 N/ U! W9 V5 h1 E0 j6 Q 删除语句一般格式为:
1 ^' |. w. ^+ B3 P DELETE FROM表名9 f# L" l R2 V/ P* L% t
[WHERE谓词];) @6 G" R+ B0 h2 l
从指定表中删除满足谓词的那些记录。没有WHERE子句时表示删去此表中的全部记录,但此表的定义仍在数据字典中,只是一个空表。DELETE只对表外延操作,不对内涵操作。
9 m. v5 w5 m1 ?% n. t$ b2 @ ③插入(INSERT)插入语句的一般格式为:
& |3 {' M% u) c- y! H% J INSERT INTO表名[(字段名[,字段名]…)]
4 D3 A" F# G1 T. q% k" A valueS(常量[,常量]…);
% L- V9 w+ H! @( G1 a/ O 或9 W& Z: ~& n; b
INSERT* j( w+ c6 w- h4 g4 L" P7 G9 U/ v
INTO表名[(字段名[,字段名]…)]
, l' Z8 t& D* |* a, Q 子查询;
6 D- m' a6 t l0 K0 q; d; @* H 第一种格式把一个新记录插入指定的表中。第二种格式把子查询的结果插入表中。若表中有些字段在插入语句中没有出现,则这些字段上的值取空值NULL。当然在表定义中说明了NOT NULL的字段在插入时不能取NULL。若插入语句中没有指出字段名,则新记录必须在每个字段上均有值。 |