数据库原理第3章1

上传人:ji****72 文档编号:48572582 上传时间:2018-07-17 格式:PPT 页数:136 大小:660KB
返回 下载 相关 举报
数据库原理第3章1_第1页
第1页 / 共136页
数据库原理第3章1_第2页
第2页 / 共136页
数据库原理第3章1_第3页
第3页 / 共136页
数据库原理第3章1_第4页
第4页 / 共136页
数据库原理第3章1_第5页
第5页 / 共136页
点击查看更多>>
资源描述

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

1、第三章 关系数据库 标准语言SQL第三章 关系数据库标准语言SQLn3.1 SQL概述n3.2 数据定义n3.3 查询n3.4 数据更新n3.5 视图n3.6 数据控制n3.7 嵌入式SQLn3.8 小结Date23.1 SQL概述nSQL简介结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的 语言,其功能包括查询、操纵、定义和控制四个方 面,是一个通用的、功能极强的关系数据库语言。 目前已成为关系数据库的标准语言。 SQL语言的版本包括:SQL-89,SQL-92, SQL3SQL语言集数据查询(data query)、数据操纵 (d

2、ata manipulation)、数据定义(data definition )和数据控制(data control)功能于一体,充分体 现了关系数据语言的特点和优点Date33.1.1 SQL的特点n综合统一 SQL语言集数据定义语言DDL、数据操纵语言 DML、数据控制语言DCL的功能于一体,可以完成 数据库生命周期中的全部活动。关系模型中实体和实体间的联系都用关系来表示 ,使得操作符单一,每种操作只使用一个操作符。n高度非过程化 使用SQL语言,只需要提出“做什么”,而无需指 明“怎么做”,无需了解存取路径,提高了数据的独 立性n面向集合的操作方式 SQL语言采用集合操作方式,查询、插入

3、、删除 、修改操作的对象都是结合。Date43.1.1 SQL的特点n以同一种语法结构提供两种使用方式 作为自含式语言 提供联机交互工具,在终端键盘上直接键入 SQL命令对数据库进行操作,由DBMS来进 行解释 作为嵌入式语言, SQL语句能嵌入到高级语言程 序中 使应用程序充分利用SQL访问数据库的能力 、宿主 语言的过程处理能力 一般需要预编译,将嵌入的SQL语句转化为 宿主语言编译器能处理的语句Date53.1.1 SQL的特点n语言简洁,易学易用,核心功能9个动词Date63.1.2 SQL语言的基本概念nSQL语言支持关系数据库三级模式Date73.1.2 SQL语言的基本概念n存储

4、文件其逻辑结构组成了数据库的内模式,物理结构有 数据库厂商所有,对用户透明。n基本表(基表,Base Table)本身独立存在的表,对应于模式,一个关系对应 于一个表,表可以有一到多个索引,以提高查询速 度n视图(View)从一个或多个表或视图中导出的表,对应于外模 式,本身不独立存在,数据库中只存放其定义,是 虚表。一般可以象使用基本表一样来使用视图?。Date83.2 数 据 定 义n3.2.1 定义、删除与修改基本表n3.2.2 建立与删除索引Date93.2.1 定义、删除与修改基本表n1. 定义基本表CREATE TABLE ( , , );:所要定义的基本表的名字:组成该表的各个属

5、性(列):涉及相应属性列的完整性约束 条件:涉及一个或多个属性列的完整 性约束条件 Date101. 定义基本表 例1 建立一个“学生”表Student,它由学号Sno、姓名 Sname、性别Ssex、年龄Sage、所在系Sdept五个属性 组成。其中学号不能为空,值是唯一的,并且姓名取 值也唯一。 CREATE TABLE Student(Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(1) ,Sage INT,Sdept CHAR(15); Date111. 定义基本表n常用完整性约束 主码约束: PRIMARY

6、KEY唯一性约束:UNIQUE非空值约束:NOT NULL参照完整性约束PRIMARY KEY与 UNIQUE的区别?Date121. 定义基本表nPRIMARY KEY通过主键可强制表的实体完整性; PRIMARY KEY 约束中的列不能接受空值。当为表指定 PRIMARY KEY 约束时,SQL Server2000 通过为主键列创建唯一索引强制数据的唯一性。当在查询中 使用主键时,该索引还可用来对数据进行快速访问nUNIQUE可使用 UNIQUE 约束确保在非主键列中不输入重复值。尽管 UNIQUE 约束和 PRIMARY KEY约束都强制唯一 性,但在强制下面的唯一性时应使用 UNIQ

7、UE 约束: 非主键的一列或列组合:一个表可以定义多个 UNIQUE 约束,而只能定义一个 PRIMARY KEY 约束。允许空值的列:允许空值的列上可以定义 UNIQUE 约束,而不能定义 PRIMARY KEY 约束。Date131. 定义基本表例 建立一个“学生选课”表SC,它由学号Sno、课程号 Cno,修课成绩Grade组成,其中(Sno, Cno)为主码 CREATE TABLE SC(Sno CHAR(5) ,Cno CHAR(3) , Grade int,Primary key (Sno, Cno);Date142. 修改基本表ALTER TABLE ADD 完整性约 束 DR

8、OP MODIFY ;:要修改的基本表ADD子句:增加新列和新的完整性约束条件DROP子句:删除指定的完整性约束条件MODIFY子句:用于修改列名和数据类型Date152. 修改基本表n例2 向Student表增加“入学时间”列,其数据类型为 日期型。ALTER TABLE Student ADD Scome DATE; 不论基本表中原来是否已有数据,新增加的列一 律为空值。 n删除属性列: 间接删除 把表中要保留的列及其内容复制到一个新表 中 删除原表 再将新表重命名为原表名 直接删除属性列:(新) 例:ALTER TABLE Student Drop Scome ;Date162. 修改基

9、本表n例3 将年龄的数据类型改为半字长整数。ALTER TABLE Student MODIFY Sage SMALLINT注:修改原有的列定义有可能会破坏已有数据n例4 删除学生姓名必须取唯一值的约束。ALTER TABLE Student DROP UNIQUE (Sname)Date173.删除基本表 nDROP TABLE ; n基本表删除数据、表上的索引都删除表上的视图往往仍然保留,但无法引用n删除基本表时,系统会从数据字典中删去有关该基本 表及其索引的描述 n例5 删除Student表DROP TABLE Student ;Date183.2.2 建立与删除索引 n索引是一种数据结

10、构,可以提高查找特定属性上具有 某一特定值的元组的效率。n大型关系数据库中的索引的实现技术是数据库管理系 统实现中最重要的核心问题。n当关系变得很大时,通过扫描所有关系中所有元组来 找出那些(可能数量很少)匹配给定条件的元组的操作方 式代价太高。例如 select * from Movie where studioName=Disneyand year = 1990一种方法:取得全部元组,用where子句逐一匹 配 另一种:取得1990年的元组,判断studioName =Disney。在year上创建索引,SQL查询处理器在 出来年份查询时,仅对指定年份的元组测试 Date193.2.2 建

11、立与删除索引 n建立索引是加快查询速度的有效手段可根据需要在一个表上建立一个或多个索引,以 提供多种存取路径,加快查找速度。也可不建n建立索引 DBA或表的属主(即建立表的人)根据需要建立有些DBMS自动建立以下列上的索引 PRIMARY KEY, UNIQUEn维护索引: DBMS自动完成 n使用索引系统在存取数据时会自动选择是否使用索引以或 合适的索引作为存取路径,用户不必也不能选择索 引Date20一、建立索引 n语句格式CREATE UNIQUE CLUSTER INDEX ON (, );用指定要建索引的基本表名字 索引可以建立在该表的一列或多列上,各列名之 间用逗号分隔 用指定索引

12、值的排列次序,升序:ASC, 降序:DESC。缺省值:ASC UNIQUE表明此索引的每一个索引值只对应唯一 的数据记录 CLUSTER表示要建立的索引是聚簇索引Date21一、建立索引n 例6 为学生-课程数据库中的Student,Course,SC三个 表建立索引。其中Student表按学号升序建唯一索引, Course表按课程号升序建唯一索引,SC表按学号升序 和课程号降序建唯一索引。 CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE I

13、NDEX SCno ON SC(Sno ASC,Cno DESC); n唯一值索引 对于已含重复值的属性列不能建UNIQUE索引对某个列建立UNIQUE索引后,插入新记录时 DBMS会自动检查新记录在该列上是否取了重复值 。这相当于增加了一个UNIQUE约束 Date22一、建立索引n聚簇索引建立聚簇索引后,基表中数据也需要按指定的 聚簇属性值的升序或降序存放。也即聚簇索引的 索引项顺序与表中记录的物理顺序一致SQL Server允许每个基表有一个聚簇索引。聚 簇索引使表中的数据与索引一同存储并使行的物 理顺序与索引的顺序保存一致。这种结构可以大 大提高访问行的性能,特别是对于有连续键值的 行

14、集。Date23一、建立索引例在Student表的Sname(姓名)列上建立一个聚簇索引 ,而且Student表中的记录将按照Sname值的升序存放 CREATE CLUSTER INDEX Stusname ON Student(Sname);n在一个基本表上最多只能建立一个聚簇索引n聚簇索引的用途:对于某些类型的查询,可以提高查 询效率n聚簇索引的适用范围 很少对基表进行增删操作 很少对其中的变长列进行修改操作 Date24二、删除索引 nDROP INDEX ;删除索引时,系统会从数据字典中删去有关该索 引的描述。n例7 删除Student表的Stusname索引。DROP INDEX

15、Stusname;Date25索引选择n数据库设计者需要对索引作一个折中的选择,这种选 择是衡量数据库设计成败的重要因素,对某个属性使用索引能极大提高对该属性上的值 的检索效率,使用到该属性时,还可以加快连接索引太多会增加系统维护费用,反而会影响效率 。对关系上某个属性的索引会使得对关系的插入、 删除和修改变得费时和复杂。Date26索引选择n索引的选择是数据库设计中最困难的部分之一,需要 估计对数据库上使用什么样的查询组合以及其他操作如果某个关系的查询操作对它的更新操作多,那 么建立在该关系上的索引具有较高的效率。 对于经常和查询where子句中的常量作比较的属 性,以及频繁出现在连接条件中的属性应该建立索 引更新操作频繁,创建索引要谨慎。需要仔细估算 更新和查询数量的相对比例来决定索引的使用。Date273.3 查 询 n数据库查询是数据库的核心操作,select具有灵活的使 用方式和丰富的功能 3.3.1 单表查询3.3.2 连接查询3.3.3 嵌套查询3.3.4 集合查询3.3.5 select 语句的一般格式 Date283.3 查 询n语句格式 SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVI

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

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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