数据库实用教程 董健全 丁宝康 编著 第4章

上传人:飞*** 文档编号:46337076 上传时间:2018-06-25 格式:PPT 页数:155 大小:666KB
返回 下载 相关 举报
数据库实用教程 董健全   丁宝康 编著 第4章_第1页
第1页 / 共155页
数据库实用教程 董健全   丁宝康 编著 第4章_第2页
第2页 / 共155页
数据库实用教程 董健全   丁宝康 编著 第4章_第3页
第3页 / 共155页
数据库实用教程 董健全   丁宝康 编著 第4章_第4页
第4页 / 共155页
数据库实用教程 董健全   丁宝康 编著 第4章_第5页
第5页 / 共155页
点击查看更多>>
资源描述

《数据库实用教程 董健全 丁宝康 编著 第4章》由会员分享,可在线阅读,更多相关《数据库实用教程 董健全 丁宝康 编著 第4章(155页珍藏版)》请在金锄头文库上搜索。

1、第4章 结构化查询语言SQL本 章 概 要 SQL是结构化查询语言(Structured Query Language)的缩写,其功能包括数据查询、数据操纵 、数据定义和数据控制四个部分。SQL 语言简洁、方便实用、功能齐全,已成为目前 应用最广的关系数据库语言。本章要求了解 SQL数据库的体系结构:SQL的组成。掌握SQL语言的四大功能及使用方法,重点掌握其数据查询功能及其使用。 4.1 SQL 概述4.1.1 SQL语言的发展及标准化4.1.1.1 SQL语言发展史SQL语言是当前最为成功、应用最为广泛的关系数据库语 言,其发展主要经历了以下几个阶段: 1974年由CHAMBERLIN和B

2、OYEE提出,当时称为 SEQUEL(STUCTURED ENGLISH QUERY LANGUAGE); IBM公司对其进行了修改,并用于其SYSTEM R关系数据库 系统中; 1981年 IBM推出其商用关系关系数据库SQL/DS,并将其名 字改为SQL,由于SQL语言功能强大,简洁易用,因此得到 了广泛的使用; 今天广泛应用于各种大型数据库,如SYBASE、INFORMIX、 ORACLE、DB2、INGRES等,也用于各种小型数据库,如 FOXPRO、ACCESS。4.1.1.2 SQL语言标准化随着关系数据库系统和SQL语言应用的日益广泛, SQL语言的标准化工作也在紧张革进行着,十

3、多年来已制 订了多个SQL标准; 1. 1982年,美国国家标准化局(AMERICAN NATIONAL STANDARD INSTITUTE,简称ANSI)开始制定SQL标准; 2. 1986年,美国国家标准化协会公布了SQL语言的第 一个标准SQL86; 3. 1987年,国际标准化组织(ISO)通过了SQL86标准 ; 4. 1989年,国际标准化组织(ISO)对SQL86进行了补 充,推出了SQL89标准; 5. 1992年,ISO又推出了SQL92标准,也称为SQL2; 6. 目前SQL99(也称为SQL3)在起草中,增加了面向 对象的功能。SQL成为国际标准后,对数据库以外的领域也

4、产生了很大影响,不少软件产品将 SQL语言的数据查询功 能与图形功能、软件工程工具、软件开发工具、人工智 能程序结合起来。SQL已成为关系数据库领域中一个主 流语言。 4.1.2 SQL语言的基本概念首先介绍两个基本概念:基本表和视图。基本表(BASE TABLE):是独立存在的表,不是由 其它的表导出的表。一个关系对应一个基本表,一个或 多个基本表对应一个存储文件。视图(VIEW):是一个虚拟的表,是从一个或几个基本表导出的表。它本身不独立存在于数据库中,数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。当基本表中的数据发生变化时,从视图中查询出来的数据也随

5、之改变。优点是提高了数据库对应用程序的独立性,有利于保持数据的一致性。其次是简化了复杂查询,提供了保持数据库安全性的手段。例如:学生数据库中有学生基本情况表 STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT),此表为基 本表,对应一个存储文件。可以在其基础上定义一 个男生基本情况表 STUDENT_MALE(SNO,SNAME,SAGE,SDEPT), 它是从STUDENT中选择SSEX=男的各个行,然 后在SNO,SNAME,SAGE,SDEPT上投影得到的。 在数据库中只存有STUDENT_MALE的定义,而 STUDENT_MALE的记录不重复存储。 在用户看来,视图是

6、通过不同路径去看一个实际 表,就象一个窗口一样,我们通过窗户去看外面 的高楼,可以看到高楼的不同部分,而透过视图 可以看到数据库中自己感兴趣的内容。SQL语言支持数据库的三级模式结构,如图3.1所 示。其中外模式对应于视图,模式对应于基本表,内模式对应于存储文件。 SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2外模式模式内模式图3.1 SQL语言支持的关系数据库的三级逻辑结构SQL数据库的体系结构具有如下特征:(l)一个 SQL模式(Schema)是表和约束的集合。(2)一个表(Table)是行(Row)的集合。每行是列(Column)的序列,每列对应一个数据项。(3)

7、一个表可以是一个基本表,也可以是一个视图。基本表是实际存储在数据库中的表。视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库中只存放视图的定义而不存放视图的数据,这些数据仍存放在导出视图的基本表中。因此视图是一个虚表。 (4)一个基本表可以跨一个或多个存储文件,一个存 储文件也可存放一个或多个基本表,一个表可以带若 干索引,索引也存放在存储文件中。每个存储文件与 外部存储器上一个物理文件对应。存储文件的逻辑结 构组成了关系数据库的内模式。 (5)用户可以用SQL语句对视图和基本表进行查询等 操作。在用户看来,视图和基本表是一样的,都是关 系(即表格)。 (6)SQL

8、用户可以是应用程序,也可以是终端用户。 SQL语句可嵌入在宿主语言的程序中使用,宿主语言有 FORTRAN、COBOL、PASCAL、PLI、C和Ada等语言; SQL语言也能作为独立的用户接口,供交互环境下的终 端用户使用。4.1.3 SQL语言的主要特点1. SQL语言类似于英语的自然语言,简洁易用 。2. SQL语言是一种非过程语言,即用户只要提 出“干什么”即可,不必管具体操作过程,也不必了 解数据的存取路径,只要指明所需的数据即可。3. SQL语言是一种面向集合的语言,每个命令 的操作对象是一个或多个关系,结果也是一个关系。4. SQL语言既是自含式语言,又是嵌入式语言 。可独立使用

9、,也可嵌入到宿主语言中。自含式语言可以独立使用交互命令,适用于终端 用户、应用程序员和DBA;嵌入式语言使其嵌入在高级语言中使用,供应用 程序员开发应用程序。5.SQL的组成SQL主要分成四个部分:(1)数据定义:这一部分也称为“SQL DDL”, 用于定义 SQL模式、基本表、视图和索引。(2)数据操纵:这一部分也称为“SQL DML”。 数据操纵分成数据查询和数据更新两类。其中数据更 新又分成插入、删除和修改三种操作。(3)数据控制:这一部分也称为“SQL DCL”。 数据控制包括对基本表和视图的授权,完整性规则的 描述,事务控制语句等。(4)嵌入式SQL的使用:这一部分内容涉及到SQL

10、语句嵌入在宿主语言程序中的使用规则。 4.2 SQL的数据定义SQL的数据定义部分包括对SQL模式(Schema) 、基本表(关系,Table)、视图(View)、索引( index)的创建和撤消操作。4.2.1 SQL模式的创建和撤消1SQL模式的创建在SQL2中,一个SQL模式(即“数据库模式”) 被定义为基本表的集合。一个SQL模式由模式名和模式 拥有者的用户名或账号来确定,并包含模式中每一个元 素(基本表、视图、索引等)的定义。创建了一个 SQL 模式,就是定义了一个存储空间。SQL模式的创建可用 CREATE语句实现,其句法如下:CREATE SCHEMA 模式名 AUTHORIZA

11、TION 用户名例如,下面语句定义了教学数据库的 SQL模式:CREATE SCHEMA ST_COURSE AUTHORIZATION 张铭该模式名为 ST_COURSE,拥有者为张铭。 在SQL中还有一个“目录”(CATALOG)概念。 目录是SQL环境中所有模式的集合。一个目录由一个特 殊模式“INFORMATION_SCHEMA”组成,它负责提供所 有模式描述是元素的信息,这些信息除了关系、视图 、索引等的定义外,还包括实体完整性规则、引用完 整性规则等内容。由于“SQL模式”这个名称学术味太重,因此 大多数 DBMS中不愿采用这个名词,而是采用“数据库 ”(DATABASE)这个名词

12、。也就是大多数系统中创建 SQL模式不是用“CREATE SCHEMA”字样,而是用“ CREATE DATABASE”字样。2SQL模式的撤消当一个 SQL模式及其所属的基本表、视图等元素都不需要时,可以用 DROP语句撤消 这个SQL模式。DROP语句的句法如下:DROP SCHEMA 模式名 CASCADE|RESTRICT撤消的方式有两种:CASCADE(连锁式)方式:执行 DROP语句时,把 SQL模式及其下属的基本表、视图、索引等所有元素全部撤消。RESTRICT(约束式)方式:执行DROP语句时,只有当 SQL模式中没有任何下属元素时,才能撤消 SQL模式,否则拒绝执行 DROP

13、语句。例如,要撤消SQL模式STCOURSE及其下属所有的元素,可用下列语句实现:DROP SCHEMA STCOURSE CASCADE 4.2.2 SQL提供的基本数据类型下面是SQL提供的一些主要数据类型:1数值型 INTEGER 长整数(也可写成INT) SMALLINT 短整数REAL 取决于机器精度的浮点数DOUBLE PRECISION 取决于机器精度的双精度浮点数FLOAT(n) 浮点数,精度至少为n位数字 NUMERIC(p,d) 定点数,由p位 数字(不包括符号小数点)组成,小数点后面有d位数字(也 可写成DECIMAL(P,d)或DEC(P,d)2字符串型CHAR(n)

14、长度为n的定长字符串VARCHAR(n) 具有最大长度为n的变长字符串3位串型BIT(n) 长度为n的二进制位串BIT VARYING(n) 最大长度为 n的变长二进制位串4时间型 DATE 日期,包含年、月、日,形为YYYYMMDD TIME 时间,包含一日的时、分、秒,形为HH:MM:SSSQL允许在上面列出的域上执行比较操作,但 算术操作只限于数值型。SQL允许用户使用“CREATE DOMAIN语句定义 新的域,例如:CREATE DOMAIN PERSON_NAME CHAR(10)定义了一个新的域PERSON_NAME,以后就可把 它作为基本数据类型看待,用户在定义其他列时可以 采

15、用PERSON_NAME作为数据类型。4.2.3 基本表的创建、修改和撤消如果在系统中创建了一个 SQL模式,那么就可 以在该模式中创建基本表。对基本表结构的操作有创 建、修改和撤消三种操作。1基本表的创建创建基本表,就是定义基本表的结构。基本表 结构的定义可用CREATE语句实现:CREATE TABLE SQL模式名基本表名(列名 类型,完整性约束,) 定义基本表结构,需指出它放在哪个模式中 ,后面为简单起见,模式名省略不写。每个属性的类 型可以是基本类型,也可以是用户事先定义的域名。 完整性规则主要有三种子句:主键子句(PRIMARY KEY)、检查子句(CHECK)和外键子句(FOREIGN KEY)。 例4.1 在有关零件、供应商、工程项目的数 据库中,有四个关系,其结构如下:供应商关系: S(SNO,SNAME,STATUS,ADDR)零件关系: P(PNO,PNAME,COLOR,WEIGHT)供应商关系: J(JNO,JNAME,CITY,BALANCE)工程项目关系: SPJ(SNO,PNO,JNO,PRICE,QTY)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号