《MySQL数据库原理及应用》课件第5章数据库的高级应用.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《MySQL数据库原理及应用》课件第5章数据库的高级应用.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL数据库原理及应用 MySQL 数据库 原理 应用 课件 高级
- 资源描述:
-
1、MySQL数据库原理及应用课件第5章数据库的高级应用第5章 数据库的高级应用任务要求:为了提高学生信息管理系统中数据的安全性、完整性和查询速度,在应用系统开发过程中要充分利用索引、视图、存储过程和函数、触发器、事务等来提高系统的性能。学习目标:了解索引、视图、游标、存储过程和函数、触发器及事务的作用 掌握索引、视图、游标、存储过程和函数、触发器及事务的创建方法 掌握索引、视图、游标、存储过程和函数、触发器及事务的修改及删除方法第5章 数据库的高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁第第5 5章章 数据库的数据库的高级应用高
2、级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁5.1.1 索引概述5.1.2 索引的类型5.1.3 索引的设计原则5.1.4 创建索引5.1.5 删除索引第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁【任务分析】【任务分析】设计人员在数据库中怎样合理地设计索引,提高数据的查询速度和效率。【课堂任务】【课堂任务】本节要理解索引的概念及作用。索引的概念及类型索引的创建和管理第第5 5章章 数据库的数据库的高级应用高级应用5.1 索
3、引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁索引是一个单独的、物理的数据库结构,是某个表中一列或者若干列的集合以及相应的标识这些值所在的数据页的逻辑指针清单。索引是依赖于表建立的,提供了数据库中编排表中数据的内部方法。表的存储由两部分组成,一部分是表的数据页面,另一部分是索引页面。索引就存放在索引页面上。索引一旦创建,将由数据库自动管理和维护。例如,向表中插入、更新和删除一条记录时,数据库会自动在索引中做出相应的修改。在编写SQL查询语句时,具有索引的表与不具有索引的表没有任何区别,索引只是提供一种快速访问指定记录的方法。第第5 5章章 数据库
4、的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁1 1索引可以提高数据的访问速度索引可以提高数据的访问速度只要为适当的字段建立索引,就能大幅度提高下列操作的速度。(1)查询操作中WHERE子句的数据提取。(2)查询操作中ORDER BY子句的数据排序。(3)查询操作中GROUP BY子句的数据分组。(4)更新和删除数据记录。2 2索引可以确保数据的唯一性索引可以确保数据的唯一性唯一性索引的创建可以保证表中数据记录不重复。第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础
5、5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁索引的类型1 1普通索引和唯一索引普通索引和唯一索引普通索引是MySQL中的基本索引类型,允许在定义索引的列中插入重复值和空值。唯一索引是指索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。主键索引是一种特殊的唯一索引,不允许有空值。2 2单列索引和组合索引单列索引和组合索引单列索引是指一个索引只包含单个列,一个表可以有多个单列索引。组合索引是指在表的多个字段组合上创建的索引。第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事
6、务5.7 锁索引的类型3 3全文索引全文索引全文索引是指在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值。全文索引可以在CHAR、VARCHAR或者TEXT类型的列上创建。MySQL中只有MyISAM存储引擎支持全文索引。4 4空间索引空间索引空间索引是对空间数据类型的字段建立的索引。MySQL中的空间数据类型有4种,分别是GEOMETRY、POINT、LINESTRING和POLYGON。MySQL使用SPATIL关键字进行扩展,使得能够用于创建正规索引类似的语法创建空间索引。创建空间索引的列,必须将其声明为NOT NULL,空间索引只有在存储引擎MyISAM的表中创建。
7、对于初学者来说,这类索引很少会用到。第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁索引的设计原则索引设计不合理或缺少索引都会对数据库和应用性能造成障碍。高效的索引对于获得良好的性能非常重要。设计索引时,应该考虑以下准则。1 1索引并非越多越好索引并非越多越好2 2避免对经常更新的表进行过多的索引避免对经常更新的表进行过多的索引3 3数据量小的表最好不要使用索引数据量小的表最好不要使用索引4 4在不同值少的列上不要建立索引在不同值少的列上不要建立索引5 5指定唯一索引是由某种数据本身的特指定
8、唯一索引是由某种数据本身的特征来决定征来决定6 6为经常需要排序、分组和联合操作的为经常需要排序、分组和联合操作的字段建立索引字段建立索引第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁创建索引创建索引是指在某个表的一列或多列上建立一个索引,以提高对表的访问速度。在实际创建索引之前,有如下几个注意事项。当给表创建UNIQUE约束时,MySQL会自动创建唯一索引。索引的名称必须符合MySQL的命名规则,且必须是表中唯一的。可以在创建表时创建索引,或是给现存表创建索引。只有表的所有者才能给表创建
9、索引。创建唯一索引时,应保证创建索引的列不包括重复的数据,并且没有两个或两个以上的空值(NULL)。因为创建索引时将两个空值也视为重复的数据,如果有这种数据,必须先将其删除,否则索引不能被成功创建。第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁创建索引1 1在创建表时创建索引在创建表时创建索引(1)使用Navicat工具创建索引。(2)使用SQL语句创建索引。在使用CREATE TABLE语句创建表时直接创建索引,此方式简单、方便。其语法格式如下。CREATE TABLE(,UNIQUE|
10、FULLTEXT|SPATIAL UNIQUE|FULLTEXT|SPATIAL 索引名索引名(属性名属性名(长度长度)ASC|DESC,)ASC|DESC,);第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁创建索引例例1 1为为studentstudent表表snosno列创建唯一索引列创建唯一索引id_snoid_sno,索引排列顺序为降序。,索引排列顺序为降序。CREATE TABLE student(UNIQUE INDEX id_sno(sno)DESC);例例2.2.为为scs
11、c表的表的snosno和和cnocno列创建普通索列创建普通索引引id_scid_sc,索引排列顺序为升序。,索引排列顺序为升序。CREATE TABLE sc(INDEX id_sc(sno,cno)ASC);第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁创建索引2 2在现存表中创建索引在现存表中创建索引可以使用Navicat工具ALTER TABLE语句或CREATE INDEX语句创建。CREATE UNIQUE|FULLTEXT|SPATIAL INDEX ON (属性名(长度)A
12、SC|DESC,);例:为表student的sbirthday列创建一个普通索引id_birth。CREATE INDEX id_birth ON student(sbirthday);第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁删除索引删除索引当索引不再需要时可以将其删除。在MySQL中,可用Navicat管理工具和SQL语句删除索引。1 1使用管理工具使用管理工具NavicatNavicat删除索引删除索引2 2使用使用SQLSQL语句删除索引语句删除索引使用SQL语言的DROP I
13、NDEX语句可删除索引,语句格式如下。DROP INDEX ON;DROP INDEX id_sno ON student;DROP INDEX id_sc ON sc;第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁【任务分析】【任务分析】设计人员在数据库中怎样合理地设计视图,以提高数据的存取性能和操作速度。【课堂任务】【课堂任务】本节要理解视图的作用及使用。视图的概念及作用视图的创建、修改和删除第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础
14、5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁5.2.1 视图概述5.2.2 视图的创建5.2.3 视图的使用5.2.4 视图的修改5.2.5 视图的删除第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁视图是从一个或者几个基本表或者视图中导出的虚拟表,是从现有基表中抽取若干子集组成用户的“专用表”,这种构造方式必须使用SQL中的SELECT语句来实现。在定义一个视图时,只是把其定义存放在数据库中,并不直接存储视图对应的数据,直到用户使用视图时才去查找对应的数据。第第5 5章章 数
15、据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁使用视图具有如下优点。(1)简化对数据的操作。(2)自定义数据。(3)数据集中显示。(4)导入和导出数据。(5)合并分割数据。(6)安全机制。第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁视图的创建1.使用Navicat管理工具创建2使用SQL语句创建视图在SQL中,使用CREATE VIEW语句创建视图,语法格式如下。CREATE VIEW view_na
16、me(Column,n)AS select_statement WITH CHECK OPTION;第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁视图的创建【例5.4】有条件的视图定义。定义视图v_student,查询所有选修数据库课程的学生的学号(sno)、姓名(sname)、课程名称(cname)和成绩(degree)。CREATE VIEW v_student AS SELECT A.sno,sname,cname,degree FROM student A,course B,sc
17、C WHERE A.sno=C.sno AND B.cno=C.cno AND cname=数据库;视图定义后,可以像基本表一样进行查询。例如,若要查询例5.4定义的视图v_student,可以使用如下命令。SELECT*FROM v_student;第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁视图的使用视图的使用主要包括视图的检索,以及通过视图对基表进行插入、修改、删除操作。视图的检索几乎没有什么限制,但是对通过视图实现表的插入、修改、删除操作则有一定的限制条件。第第5 5章章 数据库
18、的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁视图的使用1 1使用视图进行数据检索使用视图进行数据检索视图的查询总是转换为对它所依赖的基本表的等价查询。利用SQL的SELECT命令和Navicat都可以对视图进行查询,其使用方法与基本表的查询完全一样。2 2通过视图修改数据通过视图修改数据视图也可以使用INSERT命令插入行,当执行INSERT命令时,实际上是向视图所引用的基本表插入行。视图中的INSERT命令与在基本表中使用INSERT命令的格式完全一样。第第5 5章章 数据库的数据库的高级应用高级应用5.1
19、 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁视图的使用【例5.5】利用视图向表student中插入一条数据。V1_student是创建的视图,脚本如下。CREATE VIEW V1_studentAS SELECT sno,sname,saddress FROM student;执行下面脚本。INSERT INTO V1_student VALUES(2005020301,王小龙,山东省临沂市);第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.
20、7 锁视图的使用查看结果的脚本如下。SELECT sno,sname,ssex,saddress FROM student;从图5.10所示的执行结果可以看出,数据在基本表中已经正确插入。第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁视图的使用如果视图中有下面所述属性,则插入、更新或删除操作将失败。(1)视图定义中的FROM子句包含两个或多个表,且SELECT选择列表达式中的列包含来自多个表的列。(2)视图的列是从集合函数派生的。(3)视图中的SELECT语句包含GROUP BY子句或DI
21、STINCT选项。(4)视图的列是从常量或表达式派生的。第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁视图的使用【例5.6】将例5.5中插入的数据删除。DELETE FROM V1_student WHERE sname=王小龙;这个例子执行后会将基本表student中的所有sname为“王小龙”的行删除。第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁视图的修改1 1使用使用Navic
22、atNavicat修改视图修改视图2 2使用使用SQLSQL语句修改视图语句修改视图在SQL语句中,使用ALTER VIEW命令修改视图,语法格式如下。ALTER VIEW view_name(Column,n)AS select_statement WITH CHECK OPTION;【例5.7】修改例5.5中的视图V1_student。ALTER VIEW V1_student AS SELECT sno,sname FROM student;第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7
23、 锁视图的删除1 1使用使用NavicatNavicat删除视图删除视图2 2使用使用SQLSQL语句删除视图语句删除视图语法格式如下。DROP VIEW view,n;DROP VIEW命令可以删除多个视图,各视图名之间用逗号分隔,删除视图必须拥有DROP权限。【例5.8】删除视图V1_student。DROP VIEW V1_student;第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁【任务分析】【任务分析】设计人员要编写存储过程和函数、触发器及事务,首先要掌握SQL语言的语法规范及
24、语言基础。【课堂任务】【课堂任务】本节要熟悉SQL语言。SQL的语法规范SQL的语言基础常用函数游标的基本操作第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁5.3.1 SQL语言基础5.3.2 MySQL常用函数5.3.3 游标第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁SQLSQL语言基础语言基础SQL语言是一系列操作数据库及数据库对象的命令语句,因此了解基本语法和流程语句的构成是
25、必须的,主要包括常量和变量、表达式、运算符、控制语句等。第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁SQLSQL语言基础语言基础1 1常量与变量常量与变量(1)常量。常量也称为文字值或标量值,是指程序运行中值始终不改的量。第第5 5章章 数据库的数据库的高级应用高级应用5.1 索引5.2 视图5.3 SQL编程基础5.4 存储过程和函数5.5 触发器5.6 事务5.7 锁常量类型常量类型常量表示说明常量表示说明字 符 串 常字 符 串 常量量包括在单引号(包括在单引号()或双引号()或双
展开阅读全文