当前位置:
文档之家› MySQL数据库基础与实例教程第7章
MySQL数据库基础与实例教程第7章
7.1.2 查看视图的定义
可以使用下面四种方法查看视图的定义。 2.视图是一个虚表,也可以使用查看表结构 的方式查看视图的定义 desc v1_view。 3.MySQL命令“show tables;”命令不仅显 示当前数据库中所有的基表,也会将所有的 视图罗列出来。
7.1.2 查看视图的定义
可以使用下面四种方法查看视图的定义。 4.MySQL系统数据库information_schema 的views表存储了所有视图的定义,使用下面 的select语句查询该表的所有记录,也可以查 看所有视图的详细信息。 select * from information_schema.views\G
• • • • 1、设臵available字段的默认值。 alter table course add available int default 0; 2、查询新课程course表的信息 desc course;
select course_no,course_name,up_limit,available from course;
检查视图 local与cascade检查视图
7.1.1 创建视图
创建视图的语法格式如下。 create view 视图名 [ (视图字段列表) ] as select语句 对于经常使用的、结构复杂的select语句,建 议将其封装为视图 ”.简化数据查询操作。
7.1.1 创建视图
• 视图(view)为数据查询提供了一条捷径,简化数 据查询操作.
7.1.3 视图在“ese course;
从现在开始,新课程course表中比原来的课程 course表多了一个“剩余的学生名 额”available字段。 任务布臵2:上机操作,完成本书场景描述2的 任务要求。
7.1.3 视图在“选课系统”中的应用
7.1.6 检查视图
任务布臵3:上机操作,完成本书场景描述3: 普通视图与更新操作的任务要求。 创建成绩不及格的选修试图choose_1_view create view choose_1_view as select * from choose where score<60;
一、插入数据 insert into choose_1_view values null,'2012003',2,100,now()); select * from choose;
MySQL数据库基础与实例教程
之
视图触发器
内容一览
本章首先讲解了 视图以及触发器的 管理及使用,然后 结合“选课系统” 分别介绍视图以及 触发器在该系统中 的应用。
1 视图 2 触发器 3 临时表
4 派生表(Derived Table)
5 视图、子查询、临时表、派生表
作业
• P213 • 1、2、3(检查视图)、4、6。 • 复习 1、2、3(重点第3章)
• 4、查询course表的信息 • select course_no,course_name,up_limit,available • from course;
7.1.4 视图的作用
1.使操作变得简单 2.避免数据冗余 3.增强数据安全性 4.提高数据的逻辑独立性
7.1.5 删除视图
如果某个视图不再使用,可以使用drop view 语句将该视图删除,语法格式如下。 drop view 视图名
insert into choose_2_view values (null,'2012004',2,100,now());
• 然后分析普通视图与检查视图之间的区别。
定义的格式不同. 更新基表数据时,检查视图对检查数据先检查,而后更新,不满足 检查视图定义的检查条件,则更新失败。而普通视图不具备“检 查”功能。
7.1.3 视图在“选课系统”中的应用
• 3、从视图中获取信息修改原表的数据.
• update course • set available=up_limit• (select student_num from available_course_view • where course_no=course.course_no);
local 检查 视图与 cascade检 查视图
操作1: 通过该视图执行update 操作,将c赋值为70。 将无法完成此操作 操作2: 通过该视图执行update操 作,将c赋值为70。 此操作可以成功执行
cascaded检查视图 检查条件:c>50 a cascaded检查视图 检查条件:c<60
表 t
before update trigger after begin before … insert trigger end begin after … delete trigger end begin before … after end
7.2.1 准备工作
使用create trigger语句可以创建一个触发器, 语法格式如下。 create trigger 触发器名 触发时间 触发事件 on 表名 for each row begin 触发程序 end
7.1 视图
应用程序 视图与表有很多相似 的地方,视图也是由若 干个字段以及若干条记 从视图中读取数据 通过视图中修改数据 录构成,视图也可以作 为select语句的数据源。 视图 a e c h f 甚至在某些特定条件下, 可以通过视图对表进行 a b c d e f g h 更新操作。
基本表1
Select * from choose_1_view;
二、删除数据 delete from choose where student_no='2012003' and course_no=2; Select * from choose;
Select * from choose_1_view;
e
c
c
h
local检查视图 f 检查条件:c>50
a
e
c
h
f
a
b
c
d
e
f
g
h
基本表1
基本表2
基本表3
7.2 触发器
触发器主要用于监视某 1 个表的insert、update 2 以及delete等更新操作, 这些操作可以分别激活 3 该表的insert、update 4 或者delete类型的触发 5 程序运行,从而实现数 据的自动维护。
7.2.1 准备工作
MySQL的触发事件有三种: insert:将新记录插入表时激活触发程序, 例如通过insert、load data和replace语句,可 以激活触发程序运行。
准备工作
使用触发器实现检查约束
使用触发器维护冗余数据 使用触发器模拟外键级联选项 查看触发器的定义
7.2 触发器
触发器主要用于监视某 个表的insert、update 以及delete等更新操作, 这些操作可以分别激活 6 该表的insert、update 7 或者delete类型的触发程 序运行,从而实现数据 的自动维护。
基本表2
数据库
基本表3
7.1 视图
视图中保存的仅仅 是一条select语句, 1 视图中的源数据都来 自于数据库表,数据 2 库表称为基本表或者 3 基表,视图称为 。
创建视图 查看视图的定义 视图在“选课系统”中的应用
4 视图的作用 5 删除视图
7.1 视图
视图中保存的仅仅 是一条select语句, 视图中的源数据都来 自于数据库表,数据 6 库表称为基本表或者 7 基表,视图称为虚表。
• • • • 创建所有班级的学生情况视图 create view v1_view AS select classes1.class_no,class_name,department_name,student_n o,student_name • from student1 right join classes1 on student1.class_no=classes1.class_no; • select * from v1_view where class_no=1; • select * from v1_view where class_no=2;
7.1.6 检查视图
视图分为普通视图与检查视图,没有使用‘with check optiom’子句的视图都是普通试图。 通过检查视图更新基表数据时,只有满足 检查条件的更新语句才能成功执行。创建检 查视图的语法格式如下。 create view 视图名 [ (视图字段列表) ] as select语句 with [ local | cascaded ] check option
如:p 213-3
create view choose_3_view as select * from choose where score between 0 and 100 with local check option; insert into choose_3_view values (null,'2012005',2,110,now()); insert into choose_3_view values (null,'2012005',2,-12,now()); insert into choose_3_view values (null,'2012005',2,98,now()); select * from choose; select * from choose_3_view;
7.1.1 创建视图
任务布臵1: “对于经常使用的、结构复杂的 select语句,建议将其封装为视图 ”。 例如:为统计每门课程还能供多少同学选修, 定义名为 available_course_view的视图。