数据库技术第三章ppt课件

上传人:资****亨 文档编号:145613728 上传时间:2020-09-22 格式:PPT 页数:32 大小:257.50KB
返回 下载 相关 举报
数据库技术第三章ppt课件_第1页
第1页 / 共32页
数据库技术第三章ppt课件_第2页
第2页 / 共32页
数据库技术第三章ppt课件_第3页
第3页 / 共32页
数据库技术第三章ppt课件_第4页
第4页 / 共32页
数据库技术第三章ppt课件_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《数据库技术第三章ppt课件》由会员分享,可在线阅读,更多相关《数据库技术第三章ppt课件(32页珍藏版)》请在金锄头文库上搜索。

1、.,数 据 库 技 术,主 讲 人:黄 超 管理科学与工程系 E-MAIL : ,课程教材 数据库教程施伯乐 丁宝康 杨卫东编著,电子工业出版社 课程参考书 数据库系统简明教程王珊著,高等教育出版社 数据库系统概念Abraham Silberschatz,Henry F. Korth等著,杨冬青 唐世渭等译,机械工业出版社 上机时间安排 成绩考核 平时作业(15%)+考勤(15%)+期末考试(70%),第三章 SQL语言,第一节 SQL简介,SQL的发展历程 根据Codd提出的关系模型,IBM设计了第一个RDBMS,及配套的查询语言SQUARE,随后发展成SQL语言; SQL已成为国际标准,有

2、SQL86、92和99三个版本; 目前各类商用数据库都采用SQL语言作为数据存取的标准语言和接口,极大地简化了数据库软件的开发和使用; 不同的商用数据库在具体实现SQL语言时,仍然存在一些差别,并且都对其进行了一些扩展和修改。,第一节 SQL简介,SQL的体系结构 SQL是一个三级结构,如下图所示。,第一节 SQL简介,SQL数据库的体系结构要点 SQL模式是已命名的数据组,包括表、授权、规则等; SQL的表由行集合构成; 表有三种类型:基本表、视图和导出表; 一个表可以存储在多个文件中,一个文件也可以存储多个表,每个文件对应于存储器上的一个物理文件; SQL的用户可以是终端用于或者是应用程序

3、;SQL语言可以独立使用,也可以嵌套在其他主语言中;,第一节 SQL简介,SQL的组成 数据定义语言:用于定义SQL的模式,如表、视图、索引等; 数据操纵语言:用于对数据进行各种操作,包括查询和更新两大类; 数据控制语言:用于定义基本表、视图等的授权、完整性约束以及事务控制等; 嵌入式SQL的约定:用于约定SQL语句嵌入到其他主语言时的使用规则;,第一节 SQL简介,SQL语言的特点 SQL语言具有强大和灵活的查询功能; SQL只是一个数据操作语言,但是可以作为子语言嵌套在主语言中,完成数据库应用软件的开发; SQL是国际标准语言,有利于各种数据库间交换数据,也有利于程序的独立性和可移植性;

4、SQL语法简单,容易使用。 由于各商用DBMS对SQL进行了扩展和修改,应此学习SQL语言最好与特定的数据库产品结合,本课程仅讨论SQL语言的基本思想。,第二节 SQL的数据定义,什么是SQL模式 SQL模式定义为基本表的集合,一个SQL模式由模式名和模式拥有者的用户名或帐号来确定; SQL模式包含了模式中每一个元素的定义,例如基本表、视图、索引、完整性规则等; 定义一个SQL模式时,实际上就定义了一个存储空间,该空间用于存储于此模式相关的一切数据;,第二节 SQL的数据定义,SQL模式的创建和撤销 创建语句 Create Schema Authorization 撤销语句 Drop Sche

5、ma Cascade | Restrict Cascade:同时撤销该模式及其下属的所有表、视图、索引等元素; Restrict:只有当模式下不包含任何元素时,才能被撤销; 在实际应用中,各商业DBMS都将“模式”称为“数据库”,即使用Create Database和Drop Database语句。,第二节 SQL的数据定义,SQL的数据类型 数值型:Integer、SmallInt、Real、Double Precision、Float、Numeric (p, d); 字符串型:Char (n)、Varchar (n); 位串型:Bit (n)、Bit Varying (n); 时间型:Da

6、ta、Time; 自定义型:使用Create Domain 语句,例如 Create Domain Student_Name Char (8),第二节 SQL的数据定义,基本表的创建、修改和撤销 基本表的创建语句(示例) CREATE TABLE ( 列级完整性约束 , 列级完整性约束. , ) 列级完整性约束:规定列要满足的约束条件,涉及一个属性,如值非空(NOT NULL)、值惟一(Unique)等; 表级完整性约束条件:规定表要满足的约束条件,涉及一个或多个属性,包括主键、外键和检查三类约束。,第二节 SQL的数据定义,基本表结构的修改(示例) ALTER TABLE Add 完整性约束

7、 Drop Cascade | Restrict Modify : 指定要修改的基本表; Add子句:用于增加新列和新的完整性约束;(新增加的列是否能够定义为非空?为什么?); Drop子句:用于删除原有的列; Modify子句:用于修改原有的列定义;,第二节 SQL的数据定义,基本表的撤销(示例) 当基本表不需要时可以对其进行撤销,撤销后所有的数据都将丢失。撤销基本表的语句如下: DROP TABLE Cascade | Restrict Cascade 与Restrict:含义与前面所述相同;,第二节 SQL的数据定义,索引的创建和撤销 索引的作用(参见索引作用实例) 索引的创建 CREA

8、TE UNIQUE INDEX ON ( , . ) :指定要建索引的列名,索引可以建在一列或多列上,各列名之间用逗号分隔。 :每个后可指定索引值的排列次序,包括ASC(升序)和DESC(降序)两种; UNIQUE:表明每一个索引值只对应唯一的数据记录。,第二节 SQL的数据定义,索引创建实例(参见索引创建实例) 索引的撤销 DROP INDEX 对索引的一些补充说明 SQL中的索引为非显示索引,索引一经建立,就由系统使用和维护它,不需用户直接干预; 如果数据增、删、改频繁,系统会花费许多时间来维护索引,这时可以删除一些不必要的索引,以提高系统性能。,第三节 SQL的数据查询,SELECT查询

9、语句的基本结构 SELECT A1,An FROM R1,Rn WHERE F WHERE子句中的条件表达式可以使用多种运算符,如: 算术比较符:、=、!=等; 逻辑运算符:AND、OR、NOT等; 资格运算符:IN、NOT IN; 谓词:EXISTS、ALL、SOME、UNIQUE; 聚合函数:AVG、MIN、MAX、SUM、COUNT;,第三节 SQL的数据查询,F中的运算对象可以是另一个SELECT语句,这说明SELECT语句是可以嵌套的; SELECT语句的查询结果之间,还可以进行集合的并(UNION)、交(INTERSECT)、差(EXCEPT)操作; 上述结构是SELECT查询语句

10、最基本的形式,它对应如下形式的关系代数:,第三节 SQL的数据查询,SELECT基本语句的使用技术 设教学数据库中有如下4个关系: 学生 (学号#,性别,姓名,年龄,院系名称) 教师 (教师编号#,性别,教师姓名) 课程 (课程号#,课程名,教师编号#) 课程成绩(学号# ,课程号# ,分数) 第一类查询:单表查询(参见单表查询实例) 第二类查询:多表查询(参见多表查询实例),第三节 SQL的数据查询,SELECT语句的完整形式 SELECT语句的完整形式比较复杂,功能也非常强大,能够完成复杂的数据访问需求; SELECT语句的完整形式演示 SELECT语句完整形式查询的实例 GROUP BY

11、子句查询实例演示 HAVING子句查询实例演示,第四节 SQL查询中的限制和规定,SELECT语句输出列名的一些规定 SELECT ALL|DISTINCT | * ALL:将所有符合条件的记录都返回,包括重复记录; DISTICNT:将重复的记录(行)删除后返回; 列名:如普通的“学号”等; 列表达式:对列的值进行运算,得到的目标值,如“2006-AGE”; *:返回表的所有列;,第四节 SQL查询中的限制和规定,列和表的改名 SQL语言中,可以对表和表中的列用别名进行表示; 演示一:如何使用表的别名 演示二:如何使用列的别名 集合的并、交和差 如果查询结果的结构完全一致,则多个查询的结果间

12、可以进行并、交、差运算。 SQL中的表连接操作 SQL2中增加了专门的连接操作。,第五节 数据更新,SQL数据更新的种类 数据插入、数据修改和数据删除。 数据插入 第一种:插入单个元组(示例) INSERT INTO (列名列表) VALUES ( ) 将元组值插入指定表中的各个列,形成一条新元组; 没有在INTO子句中出现的列取空值(非空列呢?); 如果INTO子句不含列名,则VALUES子句必须指定所有列的值。,第五节 数据更新,第二种:插入子查询结果(示例) INSERT INTO (列名列表) 将子查询的结果全部插入指定表中; 子查询语句的返回结构必须与列名列表完全一致; 第三种:插入

13、表 INSERT INTO (列名列表) TABLE 将表2的元组全部插入表1中; 两个表的结构必须完全一致;,第五节 数据更新,数据修改(示例) UPDATE SET = | ROW=( ) WHERE 修改指定表中满足WHERE条件的元组; 用SET的值取代相应的列值; 思考:UPDATE语句每次只能修改一个表中的数据,这样是否存 在什么隐患?(提示:例如修改学号) 解决方法:对两个表分别执行UPDATE语句。 进一步思考:对两个表分别执行UPDATE语句还有没有问题?,第五节 数据更新,数据删除 DELETE FROM WHERE 从指定表中删除满足WHERE条件的元组; 若省略WHER

14、E,则删除表中全部元组,但表的定义仍在数据字典中; 数据删除存在着与数据修改同样的问题;,第六节 视 图,视图,也称为虚表,从基本表或其他视图导出,操作,定义新视图,删除视图,查询数据,更新数据(增、删、改):,有一定限制,第六节 视 图,视图的创建与撤销(示例) 创建视图 CREATE VIEW (,.) AS DBMS只把上述定义存入数据字典,并不执行其中的SELECT语句。只有对视图进行查询时,才按视图的定义从基本表中将数据查出。 撤销视图 DROP VIEW 视图删除后,由它导出的视图也将失效,应将他们删除。,第六节 视 图,视图的查询(示例) 视图查询语句的语法 与基本表查询完全相同

15、。 视图查询的步骤 有效性检查:检查查询涉及的表和视图是否存在 视图消解:把视图定义中的子查询和视图查询结合起来,转换成对基本表的查询; 执行查询:执行经过修正的查询。,第六节 视 图,视图的更新(示例) 只有行列子集视图才能进行更新操作,所谓行列子集视图是满足下列条件的视图: 从单个基本表中导出; 只使用了选择和投影两种操作; 保留了基本表的主键。 以下情况的视图均不能进行更新 从多个基本表中导出; 使用了聚集操作; 不包括主键;,第六节 视 图,视图的作用 简化用户的操作 ,隐藏复杂的多表查询过程; 通过定义不同视图,能以不同方式看待同一数据,这对于给不同用户提供不同的外模式具有重要意义; 通过视图能够对用户屏蔽某些机密数据,从而提供数据提供安全保护。,习 题,习题:教材P94,3.3、3.4(第1-4题)、 3.8(第 1-4题)、 3.9。,

展开阅读全文
相关资源
相关搜索

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

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