MySQL数据库基础与实例教程PPT学习教案_第1页
MySQL数据库基础与实例教程PPT学习教案_第2页
MySQL数据库基础与实例教程PPT学习教案_第3页
MySQL数据库基础与实例教程PPT学习教案_第4页
MySQL数据库基础与实例教程PPT学习教案_第5页
已阅读5页,还剩57页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1 MySQL数据库基础与实例教程数据库基础与实例教程PPT课件课件 1 1 2 2 3 3 本章首先讲解了视图以及触发器的管理及使用,然后结合本章首先讲解了视图以及触发器的管理及使用,然后结合“选课系统选课系统”分别介绍视图以及触发器在该系统中的应用。分别介绍视图以及触发器在该系统中的应用。 4 4 触发器触发器 视图视图 临时表临时表 派生表(派生表(Derived Table) 5 5 视图、子查询、临时表、派生表视图、子查询、临时表、派生表 内容一览内容一览 第1页/共62页 视图与表有很多相似的地方,视图也是由若干个字段以及若干条记录构成,视图也可以作为视图与表有很多相似的地方

2、,视图也是由若干个字段以及若干条记录构成,视图也可以作为select语句的数据源。甚至在某些特定条件下,可以通过视图对表进行更新操作。语句的数据源。甚至在某些特定条件下,可以通过视图对表进行更新操作。 7.1 7.1 视图视图 第2页/共62页 1 1 2 2 3 3 视图中保存的仅仅是一条视图中保存的仅仅是一条select语句,视图中的源数据都来自于数据库表,数据库表称为基本表或者基表,视图称为虚表。语句,视图中的源数据都来自于数据库表,数据库表称为基本表或者基表,视图称为虚表。 查看视图的定义查看视图的定义 创建视图创建视图 视图在视图在“选课系统选课系统”中的应用中的应用 4 5 视图的

3、作用视图的作用 删除视图删除视图 7.1 7.1 视图视图 第3页/共62页 6 6 7 7 视图中保存的仅仅是一条视图中保存的仅仅是一条select语句,视图中的源数据都来自于数据库表,数据库表称为基本表或者基表,视图称为虚表。语句,视图中的源数据都来自于数据库表,数据库表称为基本表或者基表,视图称为虚表。 检查视图检查视图 local与与cascade检查视图检查视图 7.1 7.1 视图视图 第4页/共62页 创建视图的语法格式如下。创建视图的语法格式如下。 create view 视图名视图名 (视图字段列表视图字段列表) as select语句语句 7.1.1 7.1.1 创建视图创

4、建视图 第5页/共62页 任务布置任务布置1:上机操作,完成本书:上机操作,完成本书场景描述场景描述1的任务要求,理解的任务要求,理解“对于经常使用的、结构复杂的对于经常使用的、结构复杂的select语句,建议将其封装为视图语句,建议将其封装为视图 ” 。 7.1.1 7.1.1 创建视图创建视图 第6页/共62页 可以使用下面四种方法查看视图的定义。可以使用下面四种方法查看视图的定义。 1在在choose数据库中成功地创建了视图数据库中成功地创建了视图available_course_view后,该视图的定义默认保存在数据库目录(例如后,该视图的定义默认保存在数据库目录(例如choose目录

5、)下,文件名为目录)下,文件名为available_course_view.frm。使用记事本打开该文件,即可查看该视图的定义。使用记事本打开该文件,即可查看该视图的定义。 7.1.2 7.1.2 查看视图的定义查看视图的定义 第7页/共62页 可以使用下面四种方法查看视图的定义。可以使用下面四种方法查看视图的定义。 2视图是一个虚表,也可以使用查看表结构的方式查看视图的定义。视图是一个虚表,也可以使用查看表结构的方式查看视图的定义。 3MySQL命令命令“show tables;”命令不仅显示当前数据库中所有的基表,也会将所有的视图罗列出来。命令不仅显示当前数据库中所有的基表,也会将所有的视

6、图罗列出来。 7.1.2 7.1.2 查看视图的定义查看视图的定义 第8页/共62页 可以使用下面四种方法查看视图的定义。可以使用下面四种方法查看视图的定义。 4MySQL系统数据库系统数据库information_schema的的views表存储了所有视图的定义,使用下面的表存储了所有视图的定义,使用下面的select语句查询该表的所有记录,也可以查看所有视图的详细信息。语句查询该表的所有记录,也可以查看所有视图的详细信息。 select * from information_schema.viewsG 7.1.2 7.1.2 查看视图的定义查看视图的定义 第9页/共62页 从现在开始,本书

7、将选择从现在开始,本书将选择“方案一方案一”实现学生选课功能。方案一与方案二的唯一区别在于:方案一中的课程实现学生选课功能。方案一与方案二的唯一区别在于:方案一中的课程course表比方案二中的课程表比方案二中的课程course表多了一个表多了一个“剩余的学生名额剩余的学生名额”available字段。字段。 任务布置任务布置2:上机操作,完成本书:上机操作,完成本书场景描述场景描述2的任务要求。的任务要求。 7.1.3 7.1.3 视图在视图在“选课系统选课系统”中的应用中的应用 第10页/共62页 1使操作变得简单使操作变得简单 2避免数据冗余避免数据冗余 3增强数据安全性增强数据安全性

8、4提高数据的逻辑独立性提高数据的逻辑独立性 7.1.4 7.1.4 视图的作用视图的作用 第11页/共62页 如果某个视图不再使用,可以使用如果某个视图不再使用,可以使用drop view语句将该视图删除,语法格式如下。语句将该视图删除,语法格式如下。 drop view 视图名视图名 7.1.5 7.1.5 删除视图删除视图 第12页/共62页 视图分为普通视图与检查视图。视图分为普通视图与检查视图。 通过检查视图更新基表数据时,只有满足检查条件的更新语句才能成功执行。创建检查视图的语法格式如下。通过检查视图更新基表数据时,只有满足检查条件的更新语句才能成功执行。创建检查视图的语法格式如下。

9、 create view 视图名视图名 (视图字段列表视图字段列表) as select语句语句 with local | cascaded check option 7.1.6 7.1.6 检查视图检查视图 第13页/共62页 任务布置任务布置3:上机操作,完成本书:上机操作,完成本书场景描述场景描述3:普通视图与更新操作:普通视图与更新操作的任务要求。的任务要求。 任务布置任务布置4:上机操作,完成本书:上机操作,完成本书场景描述场景描述4:检查视图与更新操作:检查视图与更新操作的任务要求。的任务要求。 然后分析普通视图与检查视图之间的区别。然后分析普通视图与检查视图之间的区别。 7.1.

10、6 7.1.6 检查视图检查视图 第14页/共62页 检查视图分为检查视图分为local检查视图与检查视图与cascade检查视图。检查视图。 with_check_option的值为的值为1时表示时表示local(local视图),视图), 值为值为2时表示时表示cascade(级联视图,在视图的基础上再次创建另一个视图)。(级联视图,在视图的基础上再次创建另一个视图)。 7.1.6 local7.1.6 local与与cascadecascade检查视图检查视图 第15页/共62页 local 检查视图与检查视图与 cascade检查视图检查视图 7.1.6 local7.1.6 loca

11、l与与cascadecascade检查视图检查视图 第16页/共62页 1 1 2 2 3 3 触发器主要用于监视某个表的触发器主要用于监视某个表的insert、update以及以及delete等更新操作,这些操作可以分别激活该表的等更新操作,这些操作可以分别激活该表的insert、update或者或者delete类型的触发程序运行,从而实现数据的自动维护。类型的触发程序运行,从而实现数据的自动维护。 使用触发器实现检查约束使用触发器实现检查约束 准备工作准备工作 使用触发器维护冗余数据使用触发器维护冗余数据 4 5 使用触发器模拟外键级联选项使用触发器模拟外键级联选项 查看触发器的定义查看触

12、发器的定义 7.2 7.2 触发器触发器 第17页/共62页 6 6 7 7 触发器主要用于监视某个表的触发器主要用于监视某个表的insert、update以及以及delete等更新操作,这些操作可以分别激活该表的等更新操作,这些操作可以分别激活该表的insert、update或者或者delete类型的触发程序运行,从而实现数据的自动维护。类型的触发程序运行,从而实现数据的自动维护。 删除触发器删除触发器 使用触发器的注意事项使用触发器的注意事项 7.2 7.2 触发器触发器 第18页/共62页 7.2 7.2 触发器触发器 第19页/共62页 使用使用create trigger语句可以创建

13、一个触发器,语法格式如下。语句可以创建一个触发器,语法格式如下。 create trigger 触发器名触发器名 触发时间触发时间 触发事件触发事件 on 表名表名 for each row begin 触发程序触发程序 end 7.2.1 7.2.1 准备工作准备工作 第20页/共62页 MySQLMySQL的触发事件有三种:的触发事件有三种: insert insert:将新记录插入表时激活触发程序,例如通过:将新记录插入表时激活触发程序,例如通过insertinsert、load dataload data和和replacereplace语句,可以激活触发程序运行。语句,可以激活触发程序

14、运行。 7.2.1 7.2.1 准备工作准备工作 第21页/共62页 MySQLMySQL的触发事件有三种:的触发事件有三种: update update:更改某一行记录时激活触发程序,例如通过:更改某一行记录时激活触发程序,例如通过updateupdate语句,可以激活触发程序运行。语句,可以激活触发程序运行。 delete delete:从表中删除某一行记录时激活触发程序,例如通过:从表中删除某一行记录时激活触发程序,例如通过deletedelete和和replacereplace语句,可以激活触发程序运行。语句,可以激活触发程序运行。 7.2.1 7.2.1 准备工作准备工作 第22页/

15、共62页 触发器的触发时间有两种:触发器的触发时间有两种:beforebefore与与afterafter。 beforebefore表示在触发事件发生之前执行触发程序。表示在触发事件发生之前执行触发程序。 afterafter表示在触发事件发生之后执行触发器。因此严格意义上讲一个数据库表最多可以设置六种类型的触发器。表示在触发事件发生之后执行触发器。因此严格意义上讲一个数据库表最多可以设置六种类型的触发器。 7.2.1 7.2.1 准备工作准备工作 第23页/共62页 for each rowfor each row表示行级触发器。表示行级触发器。 目前目前MySQLMySQL仅支持行级触发

16、器,不支持语句级别的触发器(例如仅支持行级触发器,不支持语句级别的触发器(例如create tablecreate table等语句)。等语句)。for each rowfor each row表示更新(表示更新(insertinsert、updateupdate或者或者deletedelete)操作影响的每一条记录都会执行一次触发程序。)操作影响的每一条记录都会执行一次触发程序。 7.2.1 7.2.1 准备工作准备工作 第24页/共62页 触发程序中可以使用触发程序中可以使用old关键字与关键字与new关键字。关键字。 当向表插入新记录时,在触发程序中可以使用当向表插入新记录时,在触发程序

17、中可以使用new关键字表示新记录,当需要访问新记录的某个字段值时,可以使用关键字表示新记录,当需要访问新记录的某个字段值时,可以使用“new.字段名字段名”的方式访问。的方式访问。 7.2.1 7.2.1 准备工作准备工作 第25页/共62页 触发程序中可以使用触发程序中可以使用old关键字与关键字与new关键字。关键字。 当从表中删除某条旧记录时,在触发程序中可以使用当从表中删除某条旧记录时,在触发程序中可以使用old关键字表示旧记录,当需要访问旧记录的某个字段值时,可以使用关键字表示旧记录,当需要访问旧记录的某个字段值时,可以使用“old.字段名字段名”的方式访问。的方式访问。 7.2.1

18、 7.2.1 准备工作准备工作 第26页/共62页 触发程序中可以使用触发程序中可以使用oldold关键字与关键字与newnew关键字。关键字。 当修改表的某条记录时,在触发程序中可以使用当修改表的某条记录时,在触发程序中可以使用oldold关键字表示修改前的旧记录、使用关键字表示修改前的旧记录、使用newnew关键字表示修改后的新记录。当需要访问旧记录的某个字段值时,可以使用关键字表示修改后的新记录。当需要访问旧记录的某个字段值时,可以使用“old.old.字段名字段名”的方式访问。当需要访问修改后的新记录的某个字段值时,可以使用的方式访问。当需要访问修改后的新记录的某个字段值时,可以使用“

19、new.new.字段名字段名”的方式访问。的方式访问。 7.2.1 7.2.1 准备工作准备工作 第27页/共62页 触发程序中可以使用触发程序中可以使用old关键字与关键字与new关键字。关键字。 old记录是只读的,可以引用它,但不能更改它。在记录是只读的,可以引用它,但不能更改它。在before触发程序中,可使用触发程序中,可使用“set new.col_name = value”更改更改new记录的值。记录的值。 7.2.1 7.2.1 准备工作准备工作 第28页/共62页 前面曾经提到,前面曾经提到,MySQL可以使用复合数据类型可以使用复合数据类型set或者或者enum对字段的取值

20、范围进行检查约束,使用复合数据类型可以实现离散的字符串数据的检查约束,对于数值型的数不建议使用对字段的取值范围进行检查约束,使用复合数据类型可以实现离散的字符串数据的检查约束,对于数值型的数不建议使用set或者或者enum实现检查约束,可以使用触发器实现。实现检查约束,可以使用触发器实现。 7.2.2 7.2.2 使用触发器实现检查约束使用触发器实现检查约束 第29页/共62页 任务布置任务布置5 5:上机操作,完成本书:上机操作,完成本书场景描述场景描述5 5:使用触发器实现检查约束:使用触发器实现检查约束的任务要求。的任务要求。 7.2.2 7.2.2 使用触发器实现检查约束使用触发器实现

21、检查约束 第30页/共62页 冗余的数据需要额外的维护,维护冗余数据时,为了避免数据不一致问题的发生(例如:剩余的学生名额冗余的数据需要额外的维护,维护冗余数据时,为了避免数据不一致问题的发生(例如:剩余的学生名额+已选学生人数已选学生人数课程的人数上限),冗余的数据应该尽量避免交由人工维护,建议冗余的数据交由应用系统(例如触发器)自动维护。课程的人数上限),冗余的数据应该尽量避免交由人工维护,建议冗余的数据交由应用系统(例如触发器)自动维护。 7.2.3 7.2.3 使用触发器维护冗余数据使用触发器维护冗余数据 第31页/共62页 任务布置任务布置6:上机操作,完成本书:上机操作,完成本书场

22、景描述场景描述6:使用触发器自动维护课程:使用触发器自动维护课程available的字段值的字段值的任务要求。的任务要求。 7.2.3 7.2.3 使用触发器维护冗余数据使用触发器维护冗余数据 第32页/共62页 对于对于InnoDB存储引擎的表而言,由于支持外键约束,在定义外键约束时,通过设置外键的级联选项存储引擎的表而言,由于支持外键约束,在定义外键约束时,通过设置外键的级联选项cascade、set null或者或者no action(restrict),外键约束关系可以交由),外键约束关系可以交由InnoDB存储引擎自动维护。存储引擎自动维护。 7.2.4 7.2.4 使用触发器模拟外

23、键级联选项使用触发器模拟外键级联选项 第33页/共62页 任务布置任务布置7:上机操作,完成本书:上机操作,完成本书场景描述场景描述7:使用:使用InnoDB存储引擎维护外键约束关系存储引擎维护外键约束关系的任务要求。的任务要求。 任务布置任务布置8:上机操作,完成本书:上机操作,完成本书场景描述场景描述8:使用触发器模拟外键级联选项:使用触发器模拟外键级联选项的任务要求。的任务要求。 7.2.4 7.2.4 使用触发器模拟外键级联选项使用触发器模拟外键级联选项 第34页/共62页 可以使用下面四种方法查看触发器的定义。可以使用下面四种方法查看触发器的定义。 1使用使用show trigger

24、s命令查看触发器的定义命令查看触发器的定义 7.2.5 7.2.5 查看触发器的定义查看触发器的定义 第35页/共62页 可以使用下面四种方法查看触发器的定义。可以使用下面四种方法查看触发器的定义。 2查询查询information_schema数据库中的数据库中的triggers表,可以查看触发器的定义表,可以查看触发器的定义 MySQL中所有触发器的定义都存放在中所有触发器的定义都存放在information_schema数据库下的数据库下的triggers表中,查询表中,查询triggers表,可以查看所有数据库中所有触发器的详细信息,查询语句如下:表,可以查看所有数据库中所有触发器的详

25、细信息,查询语句如下: select * from information_schema.triggersG 7.2.5 7.2.5 查看触发器的定义查看触发器的定义 第36页/共62页 可以使用下面四种方法查看触发器的定义。可以使用下面四种方法查看触发器的定义。 3使用使用“show create trigger”命令可以查看某一个触发器的定义。命令可以查看某一个触发器的定义。 例如使用例如使用“show create trigger organization_delete_before_triggerG”命令可以查看触发器命令可以查看触发器organization_delete_befor

26、e_trigger的定义。的定义。 7.2.5 7.2.5 查看触发器的定义查看触发器的定义 第37页/共62页 可以使用下面四种方法查看触发器的定义。可以使用下面四种方法查看触发器的定义。 4成功创建触发器后,成功创建触发器后,MySQL自动在数据库目录下创建自动在数据库目录下创建TRN以及以及TRG触发器文件,以记事本方式打开这些文件,可以查看触发器的定义。触发器文件,以记事本方式打开这些文件,可以查看触发器的定义。 7.2.5 7.2.5 查看触发器的定义查看触发器的定义 第38页/共62页 可以使用可以使用drop trigger语句将该触发器删除,语法格式如下。语句将该触发器删除,语

27、法格式如下。 drop trigger 触发器名触发器名 7.2.6 7.2.6 删除触发器删除触发器 第39页/共62页 1触发程序中如果包含触发程序中如果包含select语句,该语句,该select语句不能返回结果集。语句不能返回结果集。 2同一个表不能创建两个相同触发时间、触发事件的触发程序。同一个表不能创建两个相同触发时间、触发事件的触发程序。 3触发程序中不能使用以显式或隐式方式打开、开始或结束事务的语句,如触发程序中不能使用以显式或隐式方式打开、开始或结束事务的语句,如start transaction、commit、rollback或者或者set autocommit=0等语句。

28、等语句。 7.2.7 7.2.7 使用触发器的使用触发器的1010条注意事项条注意事项 第40页/共62页 4MySQL触发器针对记录进行操作,当批量更新数据时,引入触发器会导致更新操作性能降低。触发器针对记录进行操作,当批量更新数据时,引入触发器会导致更新操作性能降低。 5在在MyISAM存储引擎中,触发器不能保证原子性。存储引擎中,触发器不能保证原子性。InnoDB存储引擎支持事务,使用触发器可以保证更新操作与触发程序的原子性,此时触发程序和更新操作是在同一个事务中完成。存储引擎支持事务,使用触发器可以保证更新操作与触发程序的原子性,此时触发程序和更新操作是在同一个事务中完成。 7.2.7

29、 7.2.7 使用触发器的使用触发器的1010条注意事项条注意事项 第41页/共62页 6InnoDB存储引擎实现外键约束关系时,建议使用级联选项维护外键数据;存储引擎实现外键约束关系时,建议使用级联选项维护外键数据;MyISAM存储引擎虽然不支持外键约束关系时,但可以使用触发器实现级联修改和级联删除,进而维护存储引擎虽然不支持外键约束关系时,但可以使用触发器实现级联修改和级联删除,进而维护“外键外键”数据,模拟实现外键约束关系。数据,模拟实现外键约束关系。 7.2.7 7.2.7 使用触发器的使用触发器的1010条注意事项条注意事项 第42页/共62页 7使用触发器维护使用触发器维护Inno

30、DB外键约束的级联选项时,数据库开发人员究竟应该选择外键约束的级联选项时,数据库开发人员究竟应该选择after触发器还是触发器还是before触发器?答案是:应该首先维护子表的数据,然后再维护父表的数据,否则可能出现错误。触发器?答案是:应该首先维护子表的数据,然后再维护父表的数据,否则可能出现错误。 7.2.7 7.2.7 使用触发器的使用触发器的1010条注意事项条注意事项 第43页/共62页 8MySQL的触发程序不能对本表进行更新语句(例如的触发程序不能对本表进行更新语句(例如update语句)。触发程序中的更新操作可以直接使用语句)。触发程序中的更新操作可以直接使用set命令替代,否

31、则可能出现错误信息,甚至陷入死循环。命令替代,否则可能出现错误信息,甚至陷入死循环。 9在在before触发程序中,触发程序中,auto_increment字段的字段的new值为值为0,不是实际插入新记录时自动生成的自增型字段值。,不是实际插入新记录时自动生成的自增型字段值。 7.2.7 7.2.7 使用触发器的使用触发器的1010条注意事项条注意事项 第44页/共62页 10添加触发器后,建议对其进行详细的测试,测试通过后再决定是否使用触发器。添加触发器后,建议对其进行详细的测试,测试通过后再决定是否使用触发器。 7.2.7 7.2.7 使用触发器的使用触发器的1010条注意事项条注意事项

32、第45页/共62页 1 1 2 2 3 3 按照按照MySQL临时表的存储位置可以将其分为内存临时表(临时表的存储位置可以将其分为内存临时表(in-memory)以及外存临时表()以及外存临时表(on-disk)。)。 按照按照MySQL临时表的创建时机可以将其分为自动创建的临时表以及手动创建的临时表。临时表的创建时机可以将其分为自动创建的临时表以及手动创建的临时表。 “选课系统选课系统”中临时表的使用中临时表的使用 临时表的创建、查看与删除临时表的创建、查看与删除 使用临时表的注意事项使用临时表的注意事项 7.3 7.3 临时表临时表 第46页/共62页 1手动创建临时表手动创建临时表 手动

33、创建临时表很容易,给正常的手动创建临时表很容易,给正常的create table语句加上语句加上temporary关键字即可。关键字即可。 2查看临时表的定义可以使用查看临时表的定义可以使用MySQL语句语句“show create table 临时表名临时表名;”。 7.3.1 7.3.1 临时表的创建、查看与删除临时表的创建、查看与删除 第47页/共62页 3断开断开MySQL服务器的连接,临时表服务器的连接,临时表frm表结构定义文件以及表记录将被清除。使用表结构定义文件以及表记录将被清除。使用drop命令也可以删除临时表,语法格式如下。命令也可以删除临时表,语法格式如下。 drop t

34、emporary table 临时表表名临时表表名 7.3.1 7.3.1 临时表的创建、查看与删除临时表的创建、查看与删除 第48页/共62页 任务布置任务布置9:上机操作,完成本书:上机操作,完成本书场景描述场景描述9的任务要求。的任务要求。 7.3.2 “7.3.2 “选课系统选课系统”中临时表的使用中临时表的使用 第49页/共62页 使用存储程序可以实现表数据的复杂加工处理,有时需要将使用存储程序可以实现表数据的复杂加工处理,有时需要将select语句的查询结果集临时地保存到存储程序(例如函数、存储过程)的变量中,不过目前语句的查询结果集临时地保存到存储程序(例如函数、存储过程)的变量

35、中,不过目前MySQL并不支持表类型变量。临时表可以模拟实现表类型变量的功能。并不支持表类型变量。临时表可以模拟实现表类型变量的功能。 7.3.2 7.3.2 使用临时表的注意事项使用临时表的注意事项 第50页/共62页 临时表如果与基表重名,那么基表将被隐藏,除非删除临时表,基表才能被访问。临时表如果与基表重名,那么基表将被隐藏,除非删除临时表,基表才能被访问。 Memory、MyISAM、Merge或者或者InnoDB存储引擎的表都支持临时表。存储引擎的表都支持临时表。 临时表不支持聚簇索引、触发器。临时表不支持聚簇索引、触发器。 7.3.2 7.3.2 使用临时表的注意事项使用临时表的注

36、意事项 第51页/共62页 show tables 命令不会显示临时表的信息。命令不会显示临时表的信息。 不能用不能用rename来重命名一个临时表。但可以使用来重命名一个临时表。但可以使用alter table重命名临时表。重命名临时表。 在同一条在同一条select语句中,临时表只能引用一次。例如下面的语句中,临时表只能引用一次。例如下面的select语句将抛出语句将抛出“ERROR 1137 (HY000): Cant reopen table: t1”错误信息。错误信息。 select * from temp as t1, temp as t2; 7.3.2 7.3.2 使用临时表的注

37、意事项使用临时表的注意事项 第52页/共62页 派生表与视图一样,一般在派生表与视图一样,一般在from子句中使用,其语法格式如下(粗体字代码为派生表代码)。子句中使用,其语法格式如下(粗体字代码为派生表代码)。 .from (select子句子句) 派生表名派生表名. 派生表必须是一个有效的表,因此它必须遵守以下规则:派生表必须是一个有效的表,因此它必须遵守以下规则: 每个派生表必须有自己的别名。每个派生表必须有自己的别名。 派生表中的所有字段必须要有名称,字段名必须唯一。派生表中的所有字段必须要有名称,字段名必须唯一。 7.4 7.4 派生表(派生表(Derived TableDerived Table) 第53页/共62页 任务布置任务布置10:完成本书:完成本书场景描述场景描述10的任务要求。的任务要求。 7.4 7.4 派生表(派生表(Derived TableDerived Table) 第54页/共62页 子查询一般在主查询语句中的子查询一般在主查询语句中的where子句或者子句或者having子句中使用。子句中使用。 视图通常在主查询语句中的视图通常在主查询语句中的from子句中使用。子句中使用。 7.5 7.5 子查询、视图、临时表、派生表子查询、视图、临时表、派生表 第55页/共62页 视图本质是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论