数据库原理第三讲

上传人:宝路 文档编号:47184399 上传时间:2018-06-30 格式:PPT 页数:151 大小:817.43KB
返回 下载 相关 举报
数据库原理第三讲_第1页
第1页 / 共151页
数据库原理第三讲_第2页
第2页 / 共151页
数据库原理第三讲_第3页
第3页 / 共151页
数据库原理第三讲_第4页
第4页 / 共151页
数据库原理第三讲_第5页
第5页 / 共151页
点击查看更多>>
资源描述

《数据库原理第三讲》由会员分享,可在线阅读,更多相关《数据库原理第三讲(151页珍藏版)》请在金锄头文库上搜索。

1、数据库原理及应用教案计算机科学学院第3章 数据库的标准语言SQLn3.1 SQL概述n3.2 数据定义n3.3 数据查询n3.4 数据更新n3.5 SQL的完整性控制n3.6 SQL中的触发器n3.7 嵌入式SQL第3章 数据库的标准语言SQLnSQL(Structrued Query Language)早已确 立自己作为关系数据库标准语言的地位,已 被众多商用 DBMS 产品所采用, 使得它已 成为关系数据库领域中一个主流语言。 它不 仅包含了数据查询功能,还包括插入、删除 、更新和数据定义功能。作为一个 SQL数据 库是表的汇集,它用一个或多个 SQL模式定 义。作为 SQL的用户可以是应

2、用程序,也可 以是终端用户。31 SQL概述3.1.1 SQL语句的特征n尽管人们习惯性地称SQL是一个 “查询语言 ”, 但实际上,它的功能远非查询信息这么简单。 主要包括:n数据查询(Query)n数据操纵(Manipulation)n数据定义(Definition)n数据控制(Control)1SQL的特点n(1)综合统一n(2)高度非过程化n(3)面向集合的操作方式n(4)二种使用方式n(5)语言简洁、易学易用1SQL的特点nSQL 语言功能极强,完成核心功能只用了9 个动词,包括如下四类:n数据查询:SELECTn数据定义:CREATE、DROP、ALTERn数据操纵:INSERT、

3、UODATE、DELETEn数据控制:GRANT、REVORK。nSQL语言支持关系数据库的三级模式结 构,其中:n视图对应外模式n基本表对应模式n存储文件对应内模式n具体结构如图3-1所示。2SQL支持三级模式结构SQLView(视图) 1View(视图) 2Base Table 1 (基本表)Base Table2 (基本表)Base Table 3 (基本表)Base Table4 (基本表)Sored File 1 (存储文件 )Sored File 2 (存储文件 )Sored File 3 (存储文件 )内模式图3-1 关系数据库的三级模式结构模式外模式3.1.2 SQL的基本组成

4、nSQL由以下几个部分组成:n(1)数据定义语言(DDL):提供定义关系模式和视 图、删除关系和视图、修改关系模式的命令。n(2)交互式数据操纵语言(DML):提供查询、插入 、删除和修改的命令。n(3)事务控制(transaction control):SQL提供定义 事务开始和结束的命令。SQL组成部分n(4)嵌入式SQL和动态SQL(embedded SQL and dynamic SQL)用于嵌入到某种通用的高级语言中 混合编程。其中 SQL 负责操纵数据库,高级语言 负责控制程序流程。n(5)完整性(integrity):SQL DDL 包括定义数据库中 的数据必须满足的完整性约束条

5、件的命令,对于破 坏完整性约束条件的更新将被禁止。n(6)权限管理(authorization):SQL DDL中包括说明 对关系和视图的访问权限。32 数据定义n基本表和视图都是表。基本表是实际存储在数据库中 的表。视图是虚表,它是从基本表或其它视图中导出 的表。数据库中只存放视图的定义而不存放视图的数 据。这些数据仍存放在导出视图的基本表中。用户可 用SQL 语句对基本表和视图进行查询等操作。一个表 可以带若干索引,索引也存储在存储文件中。每个存 储文件就是外部存储器上一个物理文件,存储文件的 逻辑结构组成了关系数据库的内模式。nSQL的数据定义包括对表、视图、索引的创建和删除。 3.2.

6、1创建表 (CREATE TABLE)n语句格式:nCREATE TABLE (列级完整性约束条件, 列级完整性约束条件,);3.2.1创建表 (CREATE TABLE)n列级完整性约束条件有:nNULL(空)nUNIQUE(取值唯一),如NOT NULL UNIQUE 表示取值唯一,不能取空值。举例【例3.1】建立一个供应商、零件数据库。其中“供应商” 表S(Sno,Sname,Status,City)分别表示:供应商代码、 供应商名、供应商状态、供应商所在城市。“零件”表 P(Pno,Pname,Color,Weight,City),表示零件号、零 件名、颜色、重量及产地。其中,数据库要

7、满足如下要求 :n(1)供应商代码不能为空,且值是唯一的,供应商的名 也是唯一的。n(2)零件号不能为空,且值是唯一的。零件名不能为空n(3)一个供应商可以供应多个零件,而一个零件可以由 多个供应商供应。举例n分析:根据题意供应商和零件分别要建立一个关系模 式。供应商和零件之间是一个多对多的联系,在关系 数据库中,多对多联系必须生成一个关系模式,而该 模式的码则是由该联系两端实体的码加上联系的属性 构成的,若该联系名为SP,那麽关系模式为SP(Sno ,Pno,Qty),其中Qty表示零件的数量。n根据上述分析,用SQL建立一个供应商、零件数据库 如下:建立供应商、零件数据库CREATE TA

8、BLE S(Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(30) UNIQUE,Status CHAR(8) ,City CHAR(20)PRIMARY KEY(Sno);CREATE TABLE P(Pno CHAR(6),Pname CHAR(30) NOT NULL,Color CHAR(8),Weight NUMERIC (6,2),City CHAR(20)PRIMARY KEY(Pno);建立供应商、零件数据库CREATE TABLE SP(Sno CHAR(5),Pno CHAR(6),Status CHAR(8) ,Qty NUMERIC(9)

9、,PRIMARY KEY(Sno,Pno)FOREIGN KEY(Sno)REFERENCES S(Sno),FOREIGN KEY(Pno)REFERENCES P(Pno);举例n从上述定义可以看出,“Sno CHAR(5) NOT NULL UNIQUE”语句定义了Sno的列级完整约束 条件,取值唯一,不能取空值,需要说明如下:n(1)PRIMARY KEY(Sno)已经定义了Sno为主码,所 以,“ Sno CHAR(5) NOT NULL UNIQUE”语句中的 “NOT NULL UNIQUE”可以省略。 n(2)“ FOREIGN KEY(Sno)REFERENCES S(Sno

10、)” 定义了在SP关系中Sno为外码,其取值必须来自S关 系中的Sno域。同理在SP关系中Pno也定义为外码。3.2.2 修改表和删除表n1修改表(ALTER TABLE)n语句格式:nALTER TABLE ADD完整性约束条件 DROPMODIFY ;举例n例如,向“供应商”表S增加Zap“邮政编码”可 用如下语句:nALTER TABLE S ADD Zap CHAR(6);n注意,不论基本表中原来是否已有数据,新 增加的列一律为空。n又如,将Status字段改为整型可用如下信息:nALTER TABLE S MODIFY Status INT;2删除表(DROP TABLE)n语句格式

11、:DROP TABLE n例如,执行DROP TABLE Student;此 后关系 Student不再是数据库模式的一 部分,关系中的元组也无法访问。3.2.3定义和删除索引n在数据库中,索引使数据库程序无需对 整个表进行扫描,就可以在其中找到所 需数据。数据库中的索引是某个表中一 列或若干列值的集合和相应的指向表中 物理标识这些值的数据页的逻辑指针清 单。3.2.3定义和删除索引n索引的作用如下:n通过创建唯一索引,可以保证数据记录的唯一性。n可以大大加快数据检索速度。n可以加速表与表之间的连接,这一点在实现数据的 参照完整性方面有特别的意义。n在使用ORDER BY和GROUP BY子句

12、中进行检索数 据时,可以显著减少查询中分组和排序的时间。n使用索引可在检索数据的过程中使用优化隐藏器, 提高系统性能。1聚集索引和非聚集索引n聚集索引对表的物理数据页中的数据按列进 行排序,然后再重新存储到磁盘上,即聚集 索引与数据是混为一体的,它的叶节点中存 储的是实际的数据。 n非聚集索引具有完全独立于数据行的结构, 使用非聚集索引不用将物理数据页中的数据 按列排序。非聚集索引的叶节点存储了组成 非聚集索引的关键字值和行定位器。2建立索引n语句格式:nCREATE UNIQUECLUSTER INDEX ON ( ,);2建立索引n说明:n(1)次序:可选ASC(升序)或DSC(降序),

13、默认值为ASC。n(2)UNIQUE:表明此索引的每一个索引值只对 应唯一的数据记录。n(3)CLUSTER:表明要建立的索引是聚簇索引, 意为索引项的顺序是与表中记录的物理顺序 一致的索引组织。举例【例3.2】 假设供应销售数据库中有供应商S、 零件P、工程项目J、供销情况SPJ关系,希望 建立四个索引。其中:供应商S中Sno按升序建 立索引;零件P中 Pno按升序建立索引;工程 项目J中 Jno 按升序建立索引;对供销情况SPJ 中的Sno按升序,Pno按降序,Jno按升序建立 索引。举例解:根据题意建立的索引如下CREATE UNIQUE INDEX S-SNO ON S(Sno);CR

14、EATE UNIQUE INDEX P-PNO ON P(Pno);CREATE UNIQUE INDEX J-JNO ONJ(Jno);CREATE UNIQUE INDEX SPJ-NO ON SPJ(Sno ASC,Pno DESC,JNO ASC);3删除索引n语句格式:DROP INDEX n例如,执行 DROP INDEX StudentIndex;此 后索引StudentIndex不再是数据库模式的一部分。3.2.4 定义、删除、更新视图n视图是从一个或多个表或视图中导出的表,其 结构和数据是建立在对表的查询基础上的。n视图包括几个被定义的数据列和多个数据行, 但从其本质上讲,这

15、些数据列和数据行来源于 其所引用的表。n视图不是真实存在的基础表而是一个虚拟表, 视图所对应的数据并不实际地以视图结构存储 在数据库中,而是存储在视图所引用的表中。3.2.4 定义、删除、更新视图 n视图的优点和作用 n可以使视图集中数据、简化和定制不同用户对数 据库的不同数据要求。n使用视图可以屏蔽数据的复杂性,用户不必了解 数据库的结构,就可以方便地使用和管理数据,简 化数据权限管理和重新组织数据以便输出到其他应 用程序中。n视图可以使用户只关心他感兴趣的某些特定数据 和他们所负责的特定任务,而那些不需要的或者无 用的数据则不在视图中显示。视图的优点和作用n视图大大地简化了用户对数据的操作

16、。n视图可以让不同的用户以不同的方式看到 不同或者相同的数据集。n在某些情况下,由于表中数据量太大,因 此在表的设计时常将表进行水平或者垂直分 割,但表的结构的变化对应用程序产生不良 的影响,视图则避免了这样的问题。 n视图提供了一个简单而有效的安全机制。 1视图的创建n 语句格式:nCREATE VIEW 视图名 (列表名)AS SELECT 查询子句WITH CHECK OPTION;1视图的创建n视图的创建中,必须遵循如下规定:n(1)子查询可以是任意复杂的 SELECT 语句,但通常 不允许含有order by 子句和DISTINCT短语。n(2)WITH CHECK OPTION表示对UPDATE,INSERT, DELETE操作时保证更新、插入、或删除的行满足视 图定义中的谓词条件(即子查询中的条件表达式)。n(3)组成视图的属性列名或者全部省略或者全部指定 。如果省略属性列名,则隐含该视图由SEL

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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