ImageVerifierCode 换一换
格式:PPT , 页数:34 ,大小:236KB ,
资源ID:14332009      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14332009.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(三级数据库技术SQL关系规范化PPT推荐.ppt)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

三级数据库技术SQL关系规范化PPT推荐.ppt

1、4、存储文件的逻辑结构组成了关系数据库的内模式。5、表或者是一个基本表,或者是一个视图。6、在SQL中:一个关系对应一个基本表;一个基本表可以存放在多个存储文件中,一个存储文件也可以存放一个或多个基本表;一个基本表可以带若干索引,索引也可以存放在存储文件中。7、SQL用户可以是应用程序,也可以是终端用户。SQL的宿主语言有C,FORTARAN,COBOL,Pascal和Java等语言。SQL也能作为独立的用户接口,供交互环境下的终端使用。,SQL语言的组成和SQL语句的类型*,SQL语言的组成数据定义语言DDL数据操作语言DML数据控制语言DCL嵌入式和动态SQL规则SQL调用和会话规则SQL

2、语句的类型SQL定义语句:创建、删除、修改数据库模式及其对象的语句。SQL数据语句:查询、插入、删除、更新操作SQL事务和控制语句SQL连接、会话和诊断语句SQL数据类型预定义数据类型构造数据类型用户定义数据类型,SQL数据定义,关系数据库的基本对象是表、视图和索引。因此,SQL的数据定义功能包括定义表、定义视图和定义索引。,SQL的模式CREATE schema 模式名 AUTHORIZATION 用户名 SQL的域CREATE DOMAIN 域名 AS 数据类型 DEFAULT CHECK,SQL的数据查询,数据库查询是数据库操作的核心。SQL语言提供了SELECT语句进行数据库的查询,该

3、语句的一般格式是:SELECTALL|DISTINCT目标列表达式,目标列表达式FROM基本表(或视图),基本表(或视图)WHERE条件表达式GROUP BY列名1HAVING内部函数表达式ORDER BY列名2ASC|DESC;例:(31)查询单价在600元以上的主机板和硬盘的正确命令是A)SELECT*FROM 产品 WHERE 单价600 AND(名称=主机板 AND 名称=硬盘)B)SELECT*FROM 产品 WHERE 单价600 AND(名称=主机板 OR 名称=硬盘)C)SELECT*FROM 产品 FOR 单价600 AND(名称=主机板 AND 名称=硬盘)D)SELECT

4、*FROM 产品 FOR 单价600 AND(名称=主机板 OR 名称=硬盘),WHERE子句常用的查询条件,注意:统配符的使用:%,_,SQL提供的集函数,SQL提供的集函数主要有:COUNT(DISTINCT|ALL*)统计元组个数COUNT(DISTINCT|ALL列名)统计一列中值的个数SUM(DISTINCT|ALL列名)计算一列值的总和(此列必须是数值型)AVG(DISTINCT|ALL列名)计算一列值的平均值(此列必须是数值型)MAX(DISTINCT|ALL列名)求一列值中的最大值MIN(DISTINCT|ALL列名)求一列值中的最小值,嵌套查询,嵌套查询亦称为子查询,嵌套查询

5、是指一个SELECT-FROM-WHERE查询块可以嵌入在另一个查询块之中。SQL中允许多层嵌套。例1 求选修了课程名为“数据库”的学生姓名。SELECT sname FROM studentWHERE sno IN(SELECT sno FROM sc WHERE cno IN(SELECT cno FROM course WHERE cname=数据库);每个子查询在上一级查询处理之前求解,即嵌套查询是由里向外处理的,这样外层查询可以利用内层查询的结果。查询涉及多个关系时用嵌套查询逐次求解层次分明,容易理解也容易书写,具有结构化程序设计的优点。,嵌套查询,(1)由谓词IN引导的子查询。在嵌

6、套查询中,最常用的是谓词IN。例2 查询与“陈列”在同一系学习的学生号、姓名和系。SELECT sno,sname,dept FROM student s1WHERE s1.dept IN(SELECT dept FROM student s2WHERE s2.sname=陈列);(2)谓词是比较运算符的子查询。若能确切知道内层查询返回的是单值,则可以用比较运算符。如上例可改为:SELECT sno,sname,dept FROM studentWHERE dept=(SELECT dept FROM student s2WHERE s2.name=陈列);,嵌套查询,(3)由NOTEXISI

7、TS谓词引导的子查询。EXISTS代表存在量词,若内层查询结果非空,则外层查询的WHERE后面的条件为真,否则为假。一般地,要使EXISTS为真,当且仅当其后的SELECT语句查询结果非空。由NOTEXISTS引出的子查询,其目标列表达式通常都用*,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义。例3 查询所有选修了1号课程的学生姓名。本查询涉及student和sc关系。可以在student中依次取每个元组的sno值,用此值去检查sc关系。若sc中存在这样的元组,其sno值等于此student.sno值,并且其cno=1,则取此student.sname送入结果关系。将此想法写

8、成SQL语句是:SELECT sname FROM StudentWHERE EXISTS(SELECT*FROM sc WHERE sno=student.sno AND cno=1);与EXISTS谓词相对应的是NOT EXISTS谓词。使用存在量词NOT EXISTS后,若内层查询结果为空,则外层的WHERE子句返回真值,否则返回假值。例4 查询没有选修1号课程的学生姓名。SELECT sname FROM studentWHERE NOT EXISTS(SELECT*FROM scWHERE sno=student.sno AND cno=1);,多个SELECT语句的结果可进行集合操

9、作。并UNION:集合操作中用得最多的是并操作UNION。查询选修了课程1或者选修了课程2的学生号。SELECT sno FROM sc WHERE cno=1UNIONSELECT sno FROM sc WHERE cno=2;交:INTERSECT例:查询选修了课程1并选修了课程2的学生号。SELECT sno FROM sc WHERE cno=1 INTERSECT SELECT sno FROM sc WHERE cno=2;差:EXCEPT例:查询选修了课程1但没有选修课程2的学生号。SELECT sno FROM sc WHERE cno=1 EXCEPT SELECT sno

10、 FROM sc WHERE cno=2;,集合查询,SQL中的连接和外连接*,SQL中的连接表JOINOUTER JOINNATURAL JOINCROSS JOINSQL中的外连接LEFT JOINRIGHT JOINFULL JOIN,查询结果,存放在数组中:INTO ARRAY 存放在临时文件INTO CURSOR存放在永久表:INTO DBF/TABLE存放在文本文件:TO FILE 文件名输出到打印机TO PRINTER,SQL的修改语句,SQL的修改语句包括更新、删除和插入三类语句。更新UPDATE表名SET列名=表达式,列名=表达式WHERE谓词;删除DELETE FROM 表

11、名 WHERE谓词;插入(1)插入一个元组INSERT INTO表名(字段名,字段名)VALUES(常量,常量);(2)第2种格式INSERT INTO表名(字段名,字段名)FROM ARRAY/FROM MEMVAR注意:操作涉及的记录范围!如果没有where子句,就是全部记录。,SQL中的视图,1创建视图SQL语言用CREATE VIEW命令创建视图,其一般格式为:CREATE VIEW 视图名(列名,列名)AS子查询WITH CHECK OPTION;2删除视图视图创建好后,若导出此视图的基本表被删除了,该视图将失效,但一般不会被自动删除。删除视图通常需要显式地使用DROP VIEW语句

12、进行。该语句的格式为:DROP VIEW视图名;3修改视图 包括插入(INSERT)、删除(DELETE)和更新(UPDATE)三类操作。由于视图是虚表,因此对视图的更新,最终要转换为对基本表的更新。为防止用户通过视图对数据进行插入、删除和更新时,无意或故意操作不属于视图范围内的基本表数据,可在定义视图时加上WITH CHECK OPTION子句,这样在视图上进行修改数据时,DBMS会进一步检查视图定义中的条件,若不满足条件,则拒绝执行该操作。,SQL数据控制,SQL的数据控制语句包括授权(Grant)、收权(Revoke)和拒绝访问(Deny)三种,其权限的设置对象可以是数据库用户或用户组。

13、授予权限 GRANT权限,权限.ON对象类型对象名,对象名TO用户,用户 WITH GRANT OPTION;,收回权限REVOKE权限组|ALL PRIVILEGESON对象类型对象名,对象名.FROM用户名组|PUBLIC;,嵌入式SQL,嵌入式SQL预编译的方法,即由DBMS的预处理程序对源程序进行扫描,识别出SQL语句,把他们转换成主语言调用语句 程序中使用的任何表(基本表或视图)一般要用EXEC SQL DECLARE语句加以说明 区分SQL和主语言语句。在所有的SQL语句前面加上前缀EXEC SQL 使数据库的工作单元与程序工作单元之间能够通信。在SQL语句中使用这些主变量时,需在

14、主变量名前加冒号:做标志。使用游标解决SQL一次一集合的操作与主语言一次一记录操作的矛盾。,嵌入式SQL,游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。游标定义语句 EXEC SQL DECLARE游标名CURSORFOR子查询FOR UPDATE OF字段名1,.n;游标打开语句 EXEC SQL OPEN游标名;游标推进语句 EXEC SQL FETCH游标名INTO主变量组;游标关闭语句 EXEC SQL CLOSE 游标名;,动态SQL,含义:在SQL客户模块或嵌入式宿主程序的执行过程中动态生成SQL语句。动态SQL的语句类型 可变的SQL的语句条件可变的SQL语句数据库对象、条件都可变的SQL语句动态SQL语句的执行方式立即执行方式Execute immediate SQL语句变量先准备后执行,关系规范化,“不好”的关系模式 数据冗余更新异常插入异常删除异常函数依赖 部分函数依赖在关系模式R中,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖,记作XfY。若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作XpY。传递函数依赖 X、Y和Z是R的属性集合的任意子集,如果XY、YZ且Y X,Z-Y,Y-X,则称Z传递依赖于X,记作XtY,码的概念,候选码主

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1