04MySQL高级操作电子课件 MySQL数据库应用技术.pptx

上传人:春哥&#****71; 文档编号:90570576 上传时间:2023-05-15 格式:PPTX 页数:116 大小:7.47MB
返回 下载 相关 举报
04MySQL高级操作电子课件 MySQL数据库应用技术.pptx_第1页
第1页 / 共116页
04MySQL高级操作电子课件 MySQL数据库应用技术.pptx_第2页
第2页 / 共116页
点击查看更多>>
资源描述

《04MySQL高级操作电子课件 MySQL数据库应用技术.pptx》由会员分享,可在线阅读,更多相关《04MySQL高级操作电子课件 MySQL数据库应用技术.pptx(116页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、MySQL高级操作模块四模块四学习目标了解索引、视图和触发器的基础知识。理解索引分类的相关概念。掌握索引的创建和删除。掌握视图的创建、修改和删除。掌握触发器的创建和删除。知识重点索引的创建。视图的创建、修改和删除。触发器的创建和删除。知识难点多表复杂条件视图的创建和修改。复合条件触发器的创建。4.1索引的基本操作4.1.1 认识索引查询记录是数据库应用中最常用的操作之一,而当数据库中的表结构越来越复杂,数据量越来越多时,查询的效率就会在一定程度上降低,特别是分组查询或联表查询。索引与书的目录十分相似,建立索引可以提高从数据库表中检索数据的速度。在MySQL中,通常所指的索引类型有以下几种。(1

2、)普通索引(2)唯一索引(3)主键索引(4)全文索引(5)多列索引唯一索引和普通索引基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一。4.1索引的基本操作4.1.1 认识索引本模块使用的例子为学生党员信息的统计,使 用 Navicat在 本 机 数 据 库 上 新 建 数 据 库chapter4,并新建4个数据表,分别是tb_class、tb_type、tb_duty和 tb_student_member。其中,tb_class为班级表,tb_type为党员类型表,tb_duty为学生职务表,tb_student_member为学生党员信息表。表设计如图4-1图4-4所示。图4

3、-1 班级表设计4.1索引的基本操作4.1.1 认识索引图4-2 党员类型表设计图4-3 学生职务表设计4.1索引的基本操作4.1.1 认识索引图4-4 学生党员信息表设计4.1索引的基本操作4.1.1 认识索引图4-5 班级表数据为上述各表添加数据(录入或批量导入),添加数据后,各表数据状态如图4-5图4-8所示。图4-6 党员类型表数据4.1索引的基本操作4.1.1 认识索引为上述各表添加数据(录入或批量导入),添加数据后,各表数据状态如图4-5图4-8所示。图4-7 学生职务表数据图4-8 学生党员信息表数据4.1索引的基本操作4.1.2 创建普通索引创建普通索引的一般语法如下。1.创建

4、表的同时创建索引create table table_name(属性名 数据类型,属性名 数据类型,index|key 索引名(属性名 1长度 asc|desc));table_name为表名称,index和key为需创建的索引名,asc为升序排列,desc为降序排列。4.1索引的基本操作4.1.2 创建普通索引1.创建表的同时创建索引【例4-1】新建学生党员活动记录表,并为其学生id字段创建普通索引。创建活动项目表tb_item,其设计结构和数据如图4-9和图4-10所示。图4-9 活动项目表设计图4-10 活动项目表数据4.1索引的基本操作4.1.2 创建普通索引1.创建表的同时创建索引【

5、例4-1】创建学生党员活动记录表tb_student_item,表内应包含学生党员的id和参与的活动项目id,因为这两个字段会被经常用作查询条件,因此可以在创建该表的同时为这两个字段加上普通索引,可以通过查询命令和新建表菜单两种方式来创建。在Navicat窗口中依次单击“查询”“新建查询”按钮,在查询编辑器窗口中输入如下命令。create table table_name(属性名数据类型,属性名数据类型,index|key 索引名(属性名 l 长度 asc|desc));create table tb_student_item(id int primary key auto_increment

6、,studentId int,itemId int,index index_studentId(studentId),);4.1索引的基本操作4.1.2 创建普通索引1.创建表的同时创建索引【例4-1】也可以直接在Navicat表列表窗口中右击并选择“新建表”命令,在弹出的表设计窗口中输入字段名称和类型,然后在“索引”选项卡中输入新建索引的名字,选择其对应的字段,设置索引类型为Normal(普通索引),索引方式为BTREE,然后保存表即可,如图4-11所示。可以使用show语句或者查看表设计两种方式来查看索引是否创建成功。图4-11 创建普通索引BTREE为一种最常用的索引方式,还有HASH(

7、哈希)等其他索引方式,书中没有特殊说明时,均采用BTREE索引。4.1索引的基本操作4.1.2 创建普通索引1.创建表的同时创建索引【例4-1】此时表内还没有数据,可以使用explain语句来检查表内的索引是否被使用。使用explain命令可以查看SQL语句的执行计划,查看该SQL语句有没有使用索引、有没有做全表扫描等。例如,explain select*from tb_student_item where studentId=1;运行explain语句,在Navicat窗口中可以看到索引被使用,如图4-12所示。图4-12 运行explain命令的结果4.1索引的基本操作4.1.2 创建普通

8、索引2.在已有表上创建索引【例4-2】create table table_name(属性名数据类型,属性名数据类型,index|key 索引名(属性名 l 长度 asc|desc));create index index_itemId on tb_student_item(itemId);在已有表上创建索引的一般命令格式如下。create index 索引名on 表名(属性名 长度 asc|desc);在学生党员活动记录表中为活动记录id字段创建索引。在Navicat中新建查询,输入并运行如下语句。4.1索引的基本操作4.1.2 创建普通索引2.在已有表上创建索引【例4-2】create t

9、able table_name(属性名数据类型,属性名数据类型,index|key 索引名(属性名 l 长度 asc|desc));或者在Navicat中右击tb_student_item表,在弹出的快捷菜单中选择“设计表”命令,在打开的窗口中选择“索引”选项卡,创建索引即可,如图4-13所示。图4-13 在已有表上创建索引4.1索引的基本操作4.1.2 创建普通索引3.以修改表结构的方式来增加索引除了上述两种方式之外,还可以通过alter语句来创建普通索引,语句格式如下。alter table 表名 add index|key 索引名(属性名 长度asc|desc);在上面的例子中,如果不使

10、用【例4-2】的方式来创建index_itemId索引,那么可以在新建查询窗口中执行下面的语句来获得相同的效果。alter table tb_student_item add index index_itemId(itemId);4.1索引的基本操作4.1.3 创建唯一索引唯一索引指的是在创建索引时,其引用的字段列值必须是唯一的,即不可重复。通过唯一索引可以更快地查询某条记录。在MySQL中对于唯一索引有自动创建和手动创建两种情况,当数据库表里有完整性约束或者设置了某个字段为主键时,系统会自动创建索引关联该字段,其他情况下则需要手动创建唯一索引。4.1索引的基本操作4.1.3 创建唯一索引与普

11、通索引一样,创建唯一索引也有三种方式,分别是创建表的同时创建索引、在已有表上创建索引和改变表结构增加索引。不同的是,在使用SQL语句创建唯一索引时,需要将上节例子中所有index关键字前面加上unique。例如,create table tb_student_item(id int primary key auto_increment,studentId int,itemId int,unique index index_studentId(studentId),);create unique index index_itemId on tb_student_item(itemId);4.1索

12、引的基本操作4.1.3 创建唯一索引而使用Navicat工具来进行可视化操作时,则需要在“索引类型”一栏中将Normal改为Unique,如图4-14所示。图4-14 利用Navicat工具创建唯一索引唯一索引创建后依然可以使用explain语句来校验其是否生效。4.1索引的基本操作4.1.4 创建全文索引普通索引和唯一索引一般都创建在int或date等数据量不大的数据类型字段上,而如果需要将索引关联char、varchar或text等数据量较大的字段,则需要用到全文索引,以便更快地查询。在默认情况下,全文索引的搜索对字段值的大小写不敏感。但是,如果索引关联的字段为二进制数据类型,则会区分大小

13、写。与普通索引一样,创建全文索引也有三种方式,分别是创建表的同时创建索引、在已有表上创建索引和改变表结构增加索引。不同的是,在使用SQL语句创建全文索引时,需要将上节例子中所有index关键字前面加上fulltext。4.1索引的基本操作4.1.4 创建全文索引例如,create table tb_student_item(id int primary key auto_increment,studentId int,itemId int,fulltext index index_studentId(studentId),);create fulltext index index_itemId

14、 on tb_student_item(itemId);4.1索引的基本操作4.1.4 创建全文索引而使用Navicat工具来进行可视化操作时,则需要在“索引类型”一栏中将Normal改为Full Text,如图4-15所示。图4-15 使用Navicat工具创建全文索引全文索引创建后也可以使用explain语句来校验其是否生效。4.1索引的基本操作4.1.5 创建多列索引与单列索引一样,多列索引也可以通过以下三种方式来创建。1.创建表时创建多列索引create table table_name(属性名 数据类型,属性名 数据类型,index|key 索引名(属性名1长度 asc|desc,属

15、性名2长度 asc|desc,属性名n长度 asc|desc,));4.1索引的基本操作4.1.5 创建多列索引1.创建表时创建多列索引【例4-3】假设需要经常以学生id和党课期数为复合条件来查询学生成绩,创建新数据表并在其上创建多列索引以提高查询效率。在Navicat窗口中依次单击“查询”“新建查询”按钮,在查询编辑器窗口中输入如下命令。4.1索引的基本操作4.1.5 创建多列索引1.创建表时创建多列索引【例4-3】create table tb_student_score(id int primary key auto_increment,studentIdint,courseNoint,

16、scoreint,indexindex_student_score(studentId,courseNo);4.1索引的基本操作4.1.5 创建多列索引1.创建表时创建多列索引【例4-3】也可以直接在Navicat表列表窗口中右击并选择“新建表”菜单项,在弹出的表设计窗口中输入字段名称和类型,然后在“索引”选项卡中输入新建索引名称,选择其对应的多个字段,将索引类型设为Normal(普通索引),索引方式设为BTREE,然后保存表即可,如图所示。可以使用show语句或者查看表设计两种方式来查看索引是否创建成功。图4-16 创建多列索引多列索引也可以选择普通索引、唯一索引和全文索引,一般情况下使用普

17、通索引。4.1索引的基本操作4.1.5 创建多列索引2.在已有表上创建多列索引在已有表上创建索引的一般命令格式如下。create index 索引名on 表名(属性名1长度 asc|desc 属性名2长度 asc|desc,属性名n长度 asc|desc);4.1索引的基本操作4.1.5 创建多列索引2.在已有表上创建多列索引假设需要经常以班级和党员类型为复合条件来查询tb_student_member表,创建多列索引以提高查询效率。【例4-4】在Navicat中新建查询,输入并运行如下语句。create index index_classId_typeId on tb_student_mem

18、ber(classId,typeId);4.1索引的基本操作4.1.5 创建多列索引2.在已有表上创建多列索引或者在Navicat中右击tb_student_member表,在弹出的快捷菜单中选择“设计表”命令,在打开的窗口中选择“索引”选项卡,创建索引即可,如图4-17所示。【例4-4】图4-17 在已有表上创建多列索引4.1索引的基本操作4.1.5 创建多列索引3.修改表方式创建多列索引除了上述两种方式之外,还可以通过alter语句来创建多列索引,语句格式如下。alter table 表名 add index|key 索引名(属性名1长度 asc|desc 属性名2长度 asc|desc,

19、属性名n长度 asc|desc);在上面的例子中,如果不使用【例4-4】的方式来创建index_classId_typeId索引,则可以在新建查询窗口中执行下面的语句来获得相同的效果。alter table tb_student_member add index index_classId_typeId(classId,typeId);4.1索引的基本操作4.1.6 删除索引1.使用SQL语句删除索引删除索引的SQL语句一般格式如下。drop index 索引名 on 表名;使用SQL语句删除tb_student_item表中的index_itemId索引。drop index index_i

20、temId on tb_student_item;【例4-5】在“新建查询”窗口中输入并执行以下命令。索引是依赖于表而存在的,因此在不同的表上可以存在相同名字的索引,故而在删除索引的语句中必须标明表的名字。4.1索引的基本操作4.1.6 删除索引1.使用SQL语句删除索引为了验证tb_student_item表中是否还存在index_itemId索引,可以执行下列语句。explain select*from tb_student_item where itemId=1;【例4-5】执行结果如图4-18所示,图中方框圈出的位置为Null,表示已经没有索引。图4-18 索引删除后验证4.1索引的基

21、本操作4.1.6 删除索引2.使用Navicat客户端删除索引删除tb_student_score表中的多列索引。【例4-6】图4-19 利用Navicat工具删除索引在Navicat工具表列表中右击tb_student_score表,在弹出的快捷菜单中选择“设计表”菜单项,在打开的窗口中选择“索引”选项卡,右击index_student_score索引名,在弹出的快捷菜单中选择“删除索引”命令,然后在弹出的警告窗口中单击“确定”按钮即可完成删除索引的操作,如图4-19所示。4.2视图的基本操作4.2.1 认识视图将多个表内的字段进行抽离整合,放入一张虚拟表中来为具体的查询服务,这个虚拟表就称

22、为视图。从用户角度来看,视图是指从一个特定的角度来查看数据库中的数据。从数据库系统角度来看,一个视图就是一个由select语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的;从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,如查询、插入、修改、删除操作等。4.2视图的基本操作4.2.1 认识视图视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图的作用类似于筛选。需要注意的是,视图一旦创建成功,便会存在于数据库中。但是,视图中的数据虽然与基本表里的数据重复,却并没有脱离基本表重新存储一份。视图中的数据是基本表内的数据的映射

23、,会随着基本表内的数据的更新而更新,视图中的数据也可以像基本表一样进行增删查改。基本表内的数据也会随着视图中数据的更新而更新。但是,当视图中的数据来自多个表时,则不能对视图进行数据更新操作。4.2视图的基本操作4.2.1 认识视图视图的出现大大改善了对数据库表的查询方式,视图的优点,主要表现在提高安全性和简化查询操作两个方面。视图可以让用户将焦点更多地集中在特定任务所需的特定数据上,从而隐藏不必要暴露的基本表数据信息,另外还可以通过标识符的方式来防止未授权用户查看特定行或列的数据,从而提高安全性。优点4.2视图的基本操作4.2.2 创建视图视图是一种逻辑上的虚拟表,在物理上并不存在,因此数据库

24、管理系统没有专门存放视图中的数据。我们可以将视图理解为封装了一个较为复杂的查询语句结果。创建的视图不能与已经存在的表名重名,也不能与其他视图重名。通常情况下创建视图可以使用下面的SQL语句。create view 视图名 as 查询语句4.2视图的基本操作4.2.2 创建视图在数据库chapter4中创建视图,只显示学生党员基本信息表中的学生姓名和电话两个属性字段。1.用SQL语句创建视图【例4-7】在Navicat中新建查询,在查询窗口中输入如下语句。create view view_name_phoneasselect name,telephone from tb_student_memb

25、er4.2视图的基本操作4.2.2 创建视图运行上述语句后,在Navicat视图窗口中可以看到名为view_name_phone的视图已经创建成功,右击视图名字并选择“设计视图”命令,在打开的窗口中选择“视图创建工具”选项卡,可以在右侧分栏中看到该视图对应的SQL语句,如图4-20所示。1.用SQL语句创建视图【例4-7】图4-20 使用视图创建工具窗口4.2视图的基本操作4.2.2 创建视图回 到 Navicat视 图 列 表 窗 口,双 击view_name_phone视图图标,可以看到该视图中的数据,如图4-21所示。1.用SQL语句创建视图【例4-7】图4-21 新建视图数据窗口4.2

26、视图的基本操作4.2.2 创建视图1.用SQL语句创建视图【例4-8】图4-22 视图数据随表更新修改tb_student_member表内学生电话数据,查看视图view_name_phone表内数据的变化。修改view_name_phone视图电话数据,查看tb_student_member表内数据的变化。利用Navicat工具双击打开tb_student_member表,修改学生石小令的电话数据并保存修改,然后打开视图view_name_phone,查看数据发现学生石小令的电话数据已经自动修改,如图4-22所示。4.2视图的基本操作4.2.2 创建视图1.用SQL语句创建视图【例4-8】图

27、4-23 表数据随视图更新在 视 图 数 据 列 表 窗 口 内 修 改 学 生 杨 晶 晶 的 电 话 数 据 并 保 存,然 后 打 开tb_student_member表,查看数据发现学生杨晶晶的电话数据已经被修改,如图4-23所示。4.2视图的基本操作4.2.2 创建视图2.使用Navicat工具创建视图【例4-9】图4-24 “视图创建工具”选项卡假设有常规查询任务为列出所有学生党员的姓名、班级和入党日期,在数据库chapter4中创建视图,只显示学生党员基本信息表中的学生姓名、班级和入党日期三个属性字段。在Navicat窗口中单击“视图”按钮,打开视图列表窗口,在窗口工作区右击,在

28、弹出的快捷菜单中选择“新建视图”命令,打开视图创建窗口,在该窗口中选择“视图创建工具”选项卡,如图4-24所示。4.2视图的基本操作4.2.2 创建视图2.使用Navicat工具创建视图【例4-9】图4-25 利用视图创建工具选择数据表在右下侧的命令编辑窗口中可以在每个蓝色关键字后面对栏位进行编辑,从而形成完整的视图创建SQL语句,单击FROM关键字后面的栏位,选择数据表,如图4-25所示。4.2视图的基本操作4.2.2 创建视图2.使用Navicat工具创建视图【例4-9】图4-26 利用视图创建工具选择字段单击SELECT关键字后面的栏位,进行字段属性选择,此处选择name、classId

29、和joinDate三个字段(需要点选三次),也可以在右上栏的字段选择工具中进行复选。右侧栏SQL语句如图4-26所示。4.2视图的基本操作4.2.2 创建视图2.使用Navicat工具创建视图【例4-9】图4-27 新建视图数据窗口单击“保存”按钮,在保存对话框内输入视图的名字view_name_class_joinDate。保存后,回到视图列表主窗口,双击打开新建的视图,看到的相关数据如图4-27所示。4.2视图的基本操作4.2.2 创建视图3.创建多表查询视图在上例中,可以发现班级一列并没有直接显示班级名称,而是显示为班级ID,而具体的班级信息存放在tb_class数据表中,如果想显示出来

30、就需要建立视图,在视图中选择tb_student_member和tb_class两个表的字段属性,并使用where条件将两个表联合对应起来。4.2视图的基本操作4.2.2 创建视图3.创建多表查询视图【例4-10】创建视图显示学生姓名、班级名和电话三条信息。在Navicat中打开视图列表主窗口,然后单击“新建视图”按钮,在视图创建窗口中切换到“视图创建工具”选项卡,然后在右下侧栏中的FROM关键字后面增加两个栏位,分别填入tb_student_member和tb_class。在 SELECT关 键 字 后 面 增 加 三 个 栏 位,分 别 选 中tb_student_member.name、

31、tb_student_member.telephone和tb_class.className。4.2视图的基本操作4.2.2 创建视图3.创建多表查询视图【例4-10】在WHERE关键字后面增加条件,增加后会默认出现“=”字样,单击左边的“”,在 弹 出 的 对 话 框 中 选 择“列 表”选 项 卡,然 后 选 择tb_student_member.classId,用同样的方式,单击右边的“”,并选择tb_class.id。单击“保存”按钮保存视图,填入视图名称view_name_class_phone,如图4-28所示。图4-28 多表视图的创建4.2视图的基本操作4.2.2 创建视图3.

32、创建多表查询视图【例4-10】在视图列表主窗口中双击打开视图view_name_class_phone,可以看到学生姓名、学生班级及电话号码已经对应显示。且在该视图中数据以班级自动分组,如图4-29所示。图4-29 多表视图的数据窗口4.2视图的基本操作4.2.2 创建视图3.创建多表查询视图【例4-10】如果想要以姓名来分组,则可以在“视图创建工具”窗口右下侧栏中的“GROUP BY”关键字后面添加“GROUP BY”,在弹出的窗口中选择“tb_student_member.name”,保存后关闭视图设计窗口,再次双击打开该视图,可以看到视图已经以姓名来分组,如图4-30所示。图4-30 按

33、姓名分组的视图在添加“GROUP BY”条件时,不能选择视图中不存在的字段属性,否则会出现数据错乱的问题。4.2视图的基本操作4.2.2 创建视图3.创建多表查询视图从上面的例子中可以看到,创建视图的核心问题就是选择合适的select语句,而在上例中也加入了where子句、group by子句和order by子句,根据select语句的语法,在创建视图时使用的select语句还可以包括聚合函数,如sum、min、max和count等,也可以加入表内连接和表外连接及记录联合等语句,让原本复杂的查询转化为相对简单的视图,简化在频繁使用查询命令时的操作。4.2视图的基本操作4.2.3 查看视图1.

34、使用show tables语句查看视图在Navicat中打开chapter4数据库,新建查询窗口,在窗口中输入如下语句。show tables运行命令后,可以看到本数据库中所有的数据表和视图列表,如图4-31所示。图4-31 数据表和视图列表采用这种方式可以列出数据库中所有的表和视图,但是只能看到表和视图的名字。如果想知道更加详细的信息,可以使用show table status语句。4.2视图的基本操作4.2.3 查看视图2.使用show table status语句查看视图在Navicat窗口中新建查询,在查询编辑器中输入如下命令。show table status from chapte

35、r4运行命令后,在结果栏中可以看到chapter4数据库中所有的表和视图的详细信息,如图4-32所示。图4-32 使用show table status语句查询得到的结果4.2视图的基本操作4.2.3 查看视图3.使用show create view语句查看视图上述两个命令都要列出数据库中所有的表和视图信息,而使用show create view命令则可以列出某个视图的具体信息。在Navicat中新建查询窗口,在查询编辑器中输入如下命令。show create view view_name_class_phone运行命令后,可以查看view_name_class_phone视图的名称、SQL语

36、句、字符集和校验方式四种信息,如图4-33所示。图4-33 使用show create view语句查看视图信息 4.2视图的基本操作4.2.3 查看视图4.使用describe命令查看视图在Navicat中新建查询,在查询编辑器中输入如下命令。describe view_name_class_phone运行命令后,可以在结果栏中看到视图的字段信息,如图4-34所示。图4-34 使用describe命令查看视图4.2视图的基本操作4.2.3 查看视图5.通过查看系统表查看视图在Navicat中双击进入information_schema数据库并新建查询,在查询编辑器中输入如下命令。select

37、*from views where TABLE_NAME=view_name_class_phone 运 行 命 令 后 在 结 果 栏 中 显 示view_name_class_phone视图的详细信息,如图4-35所示。图4-35 系统表内的视图信息4.2视图的基本操作4.2.3 查看视图6.通过Navicat可视化工具查看视图双击打开chapter4数据库,单击“视图”按钮切换到视图列表窗口,即可查看所有该数据库中的视图。右击其中某一个视图,在弹出的快捷菜单中选择“设计视图”命令即可查看该视图创建时所用的SQL语句。在该窗口中还可以单击“预览”和“解释”按钮进行视图数据和相关属性的查看。

38、4.2视图的基本操作4.2.4 删除视图1.使用drop view语句删除视图在Navicat中新建查询,在查询编辑器中输入如下命令。drop view view_name_phone运行命令后,在Navicat主窗口中单击“视图”按钮进入视图列表窗口,可以看到view_name_phone视图已经被删除。个别时候视图列表中仍存在被drop命令删除的视图,在视图列表窗口空白处右击,在弹出的快捷菜单中选择“刷新”命令,即可看到被删除后的视图列表。4.2视图的基本操作4.2.4 删除视图1.使用drop view语句删除视图使用drop view命令也可以一次删除多个视图,命令语句如下。drop

39、view view_name_phone,view_name_class_phone使用drop view命令删除视图时,并不会弹出“确认删除”对话框,因此要慎重使用。4.2视图的基本操作4.2.4 删除视图2.使用Navicat工具删除视图使用Navicat删除视图非常简单,在主窗口中单击“视图”按钮,进入视图列表窗口,在要删除的视图上右击,在弹出的快捷菜单中选择“删除视图”命令,就会弹出“确认删除”对话框,如图4-36所示。单击“删除”按钮,即可将视图删除,单击“取消”按钮,则取消删除操作。“确认删除”对话框可以在一定程度上防止误删除,因此推荐使用Navicat工具来删除视图。图4-36

40、“确认删除”对话框4.2视图的基本操作4.2.5 修改视图1.使用create or replace view语句来修改视图使用create or replace view语句实际上是将删除和新建两个步骤合二为一,简化了操作,其潜在意思是如果不存在视图则创建(create),如果存在同名视图则替换(删除后新建)。【例4-11】视图view_name_class_joinDate中保存的是班级号,不利于用户的数据查看,修改view_name_class_joinDate,将其中的classId改为tb_class表中的className字段,让其显示学生姓名、班级名称和入党日期。4.2视图的基本

41、操作4.2.5 修改视图1.使用create or replace view语句来修改视图【例4-11】在Navicat中新建查询,在查询编辑器窗口中输入如下命令。create or replace view view_name_class_joinDateasselect tb_student_member.name ,tb_class.className,tb_student_member.joinDatefrom tb_student_member,tb_classwhere tb_class.id=tb_student_member.classId4.2视图的基本操作4.2.5 修改视

42、图1.使用create or replace view语句来修改视图【例4-11】运行命令后,回到chapter4数据库视图列表主窗口,双击view_name_class_joinDate视图,查看其数据内容,发现班级号已经变为班级名称,如图4-37所示。图4-37 view_name_class_joinDate视图修改后的数据4.2视图的基本操作4.2.5 修改视图1.使用create or replace view语句来修改视图【例4-11】在视图列表主窗口中右击view_name_class_joinDate,在弹出的快捷菜单中选择“设计视图”命令,在打开的窗口中选择“视图创建工具”选

43、项卡,查看其使用的SQL语句,发现已经被更改,如图4-38所示。图4-38 view_name_class_joinDate视图修改后的SQL语句4.2视图的基本操作4.2.5 修改视图2.使用alter语句修改视图【例4-12】修改view_name_class_phone视图,为其加上学生籍贯字段。在Navicat中新建查询,在查询编辑器窗口中输入如下命令。alter view view_name_class_phoneasselect tb_student_member.name,tb_student_member.telephone,tb_class.className,tb_stud

44、ent_member.addressfrom(tb_student_member join tb_class)where tb_student_member.classId=tb_class.idorder by tb_student_member.name desc4.2视图的基本操作4.2.5 修改视图2.使用alter语句修改视图【例4-12】运行命令后,回到视图列表窗口,双击view_name_class_phone视图,查看数据,发现已经加上了学生籍贯一列,如图4-39所示。图4-39 view_name_class_phone视图修改后的数据4.2视图的基本操作4.2.5 修改视图

45、2.使用alter语句修改视图【例4-12】在视图列表主窗口中右击view_name_class_phone,在弹出的快捷菜单中选择“设计视图”命令,在打开的窗口中选择“视图创建工具”选项卡,查看其使用的SQL语句,发现已经被更改,如图4-40所示。图4-40 view_name_class_phone视图修改后的SQL语句4.2视图的基本操作4.2.5 修改视图3.使用Navicat工具修改视图使用Navicat工具来修改视图更加直观、方便,在视图列表中右击需要修改的视图,在弹出的快捷菜单中选择“设计视图”命令,在弹出的窗口中选择“视图创建工具”选项卡,在右下侧栏中修改select各个关键字

46、对应子句的内容,或者选择“定义”选项卡直接修改SQL语句的内容,修改无误后单击“保存”按钮保存修改即可。4.2视图的基本操作4.2.6 视图与表的操作1.用表和视图完成数据查询通常情况下,可以对视图进行增删查改的基本操作。对视图进行查询操作与对表进行查询操作的方法相同,直接使用select语句即可。而且,对视图的查询操作通常是使用简单查询语句,对程序员来讲更加友好。4.2视图的基本操作4.2.6 视图与表的操作1.用表和视图完成数据查询【例4-13】查询计科131班所有学生党员的姓名和电话号码。如果没有视图,可以新建查询窗口,在查询编辑器中使用如下语句来完成查询操作。select name,t

47、elephone from tb_student_memberwhere classId=(select id from tb_class where className=计科131 )4.2视图的基本操作4.2.6 视图与表的操作1.用表和视图完成数据查询【例4-13】执行命令后查询的结果如图4-41所示。图4-41 用基本表完成复杂数据的查询4.2视图的基本操作4.2.6 视图与表的操作1.用表和视图完成数据查询【例4-13】新建查询窗口,在查询编辑器中输入如下命令。select name,telephone from view_name_class_phonewhere classNam

48、e=计科131 运行上述命令将得到与图4-41相同的查询结果。4.2视图的基本操作4.2.6 视图与表的操作2.视图和表的相互影响由于视图是虚拟表,是基本表数据筛选的映射,因此当基本表数据发生变化时,视图中的数据会自动发生变化。在Navicat中新建查询,在查询编辑器中输入如下命令。【例4-14】修改tb_student_member表中石小令同学的班级号属性,然后运行【例4-13】中的视图查询命令,查看其运行结果。update tb_student_member set classId=3 where name=石小令 4.2视图的基本操作4.2.6 视图与表的操作2.视图和表的相互影响运行

49、上述命令,发现已经没有石小令同学的名字,如图4-42所示。【例4-14】运行上述命令后,在新的查询窗口中输入如下命令。select name,telephone from view_name_class_phonewhere className=计科131 图4-42 表修改后的视图查询4.2视图的基本操作4.2.6 视图与表的操作2.视图和表的相互影响在新建查询窗口的查询编辑器中输入如下命令。【例4-15】删除视图view_name_phone中的数据,观察基本表tb_student_member中数据的变化。delete from view_name_phone where name=石小

50、令 运行上述命令后,在查询编辑器中输入如下命令。select*from tb_student_member where name=石小令 4.2视图的基本操作4.2.6 视图与表的操作2.视图和表的相互影响【例4-15】运行上述命令后,发现结果中没有出现任何数据,证明随着视图数据的删除,基本表内的数据也随之被删除,如图4-43所示。图4-43 视图数据变化后的表数据查询4.2视图的基本操作4.2.6 视图与表的操作2.视图和表的相互影响当视图中的数据来自多个表时,不能进行数据添加和删除操作,如果这种情况下运行视图数据删除或添加命令,会提示错误信息,如图4-44所示。图4-44 多个源基本表的视

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

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁