sql———关系数据库的标准规范语言.doc
文本预览下载声明
SQL———关系数据库的标准语言
1.SQL概述
SQL的英语名称是结构化查询语言(Structured Query Language)。实际上它的功能包括查询(Query)、操纵(Manipulation)、定义(Definition)和控制(Control)四个方面,是一个综合的、通用的、功能极强的关系数据库语言。SQL支持数据库的三级模式结构。
2.SQL的数据定义功能
SQL的数据定义功能包括三部分:定义基本表、定义视图和定义索引。它们是:CREATE TABLE CREATE VIEW CREATE INDEX DROP TABLE DROP VIEW DROP INDEX
SQL的数据定义功能可用于定义和修改模式(如基本表),定义外模式(如视图)和内模式(如索引)。
3.基本表的定义与删除
定义基本表的语句格式为:
CREATE TABLE表名 (列名1 类型[NOT NULL]
[,列名2类型[NOT NULL]]…)
[其他参数];
其中,任选项“其它参数”是与物理存储有关的参数。根据具体系统的不同而不同。删除基本表的语句为 ROP TABLE表名;删除索引的语句为:
DROP INDEX索引名;
删除索引的同时把有关索引的描述也从数据字典中删去。但表的内涵仍存在且其数据外延内容不变。
把一个基本表的定义连同表上所有的记录、索引以及由此基本表导出的所有视图全部都删除,并释放相应的存储空间。
4.索引的建立与删除
对一个基本表,可以根据应用环境的需要建立若干索引,以提供多种存取方式。通常,索引的建立和删除由DBA或表的主人(即建立表的人)负责。用户不必也不能在存取数据时选择索引。存取路径的选择由系统自动进行。索引的描述存放在数据字典中。建立索引的语句格式为:
CREATE[UNIQUE] INDEX索引名
ON基本表名(列名[次序][,列名[次序]]…)[其他参数];
这里的任选项———其他参数是与物理存储有关的参数。
索引可以建在一列或几列上。圆括号内是索引列的顺序说明表。其中的任选项———次序,指定了索引值排序的次序。可取ASC(升序)或DESC(降序)。缺省值为升序。UNIQUE表示每一索引值只对应唯一的数据记录。
5.SQL的数据操纵功能
SQL的数据操纵功能包括SELECT、INSERT、DELETE和UPDATE四个语句,即检索和更新(包括增、删、改)两部分功能。检索就是查询。
(1)SQL查询语句
SQL语言的核心是数据库查询语句。该语句的一般格式是:
SELECT目标列
FROM基本表(或视图)[WHERE条件表达式]
[GROUP BY列名1[HAVING内部函数表达式]]
[ORDER BY列名2ASC
DESC ];
整个语句的含义是:根据WHERE子句中的条件表达式,从基本表(或视图)中找出满足条件的元组,按SELECT子句中的目标列,选出元组中的分量形成结果表。如果有ORDER子句,则结果表要根据指定的列名2按升序或降序排列。GROUP子句将结果按列名1分组,每个组产生结果表中的一个元组。通常在每组中使用库函数。分组的附加条件用HAVING短语给出,只有满足内部函数表达式的组才予输出。
SQL语言对数据库的操作十分灵活方便,原因在于SELECT语句的成分丰富多样,有许多可选形式。
(2)SQL更新语句
SQL的更新语句包括修改、删除和插入三类语句。①修改(UPDATE)(亦称为更新)修改语句的一般格式为:UPDATE表名
SET字段=表达式[,字段=表达式]…[WHERE谓词];
修改指定表中满足谓词(或条件)的元组,把这些元组按SET子句中的表达式修改相应属性或字段上的值。
②删除(DELETE)
删除语句一般格式为 ELETE
FROM表名
[WHERE谓词];
从指定表中删除满足谓词的那些记录。没有WHERE子句时表示删去此表中的全部记录,但此表的定义仍在数据字典中,只是一个空表。DELETE只对表外延操作,不对内涵操作。③插入(INSERT)
插入语句的一般格式为:INSERT
INTO表名[(字段名[,字段名]…)] VALUES(常量[,常量]…);或INSERT
INTO表名[(字段名[,字段名]…)]子查询;
第一种格式把一个新记录插入指定的表中。第二种格式把子查询的结果插入表中。若表中有些字段在插入语句中没有出现,则这些字段上的值取空值NULL。当然在表定义中说明了NOT NULL的字段在插入时不能取NULL。若插入语句中没有指出字段名,则新记录必须在每个字段上均有值。
6.视图
视图是从一个或几个基本表(或视图)导出的表。某一用户可以定义若干视图。因此对某一用户而言,按ANSI/SPARC报告的观点,他的外模式是由若干基本表和若干视图组成的。
视图和基本表不同,视
显示全部