MySQL数据库基础与实例教程第7章剖析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• • • • 1、设置available字段的默认值。 alter table course add available int default 0; 2、查询新课程course表的信息 desc course;
select course_no,course_name,up_limit,available from course;
MySQL数据库基础与实例教程

视图触发器
内ቤተ መጻሕፍቲ ባይዱ一览
本章首先讲解了 视图以及触发器的 管理及使用,然后 结合“选课系统” 分别介绍视图以及 触发器在该系统中 的应用。
1 视图 2 触发器 3 临时表
4 派生表(Derived Table)
5 视图、子查询、临时表、派生表
作业
• P213 • 1、2、3(检查视图)、4、6。 • 复习 1、2、3(重点第3章)
基本表2
数据库
基本表3
7.1 视图
视图中保存的仅仅 是一条select语句, 1 视图中的源数据都来 自于数据库表,数据 2 库表称为基本表或者 3 基表,视图称为 。
创建视图 查看视图的定义 视图在“选课系统”中的应用
4 视图的作用 5 删除视图
7.1 视图
视图中保存的仅仅 是一条select语句, 视图中的源数据都来 自于数据库表,数据 6 库表称为基本表或者 7 基表,视图称为虚表。
7.1.2 查看视图的定义
可以使用下面四种方法查看视图的定义。 1.在choose数据库中成功地创建了视图 available_course_view后,该视图的定义默 认保存在数据库目录(例如choose目录)下, 文件名为available_course_view.frm。使用 记事本打开该文件,即可查看该视图的定义。
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
• 4、查询course表的信息 • select course_no,course_name,up_limit,available • from course;
7.1.4 视图的作用
1.使操作变得简单 2.避免数据冗余 3.增强数据安全性 4.提高数据的逻辑独立性
7.1 视图
应用程序 视图与表有很多相似 的地方,视图也是由若 干个字段以及若干条记 从视图中读取数据 通过视图中修改数据 录构成,视图也可以作 为select语句的数据源。 视图 a e c h f 甚至在某些特定条件下, 可以通过视图对表进行 a b c d e f g h 更新操作。
基本表1
检查视图 local与cascade检查视图
7.1.1 创建视图
创建视图的语法格式如下。 create view 视图名 [ (视图字段列表) ] as select语句 对于经常使用的、结构复杂的select语句,建 议将其封装为视图 ”.简化数据查询操作。
7.1.1 创建视图
• 视图(view)为数据查询提供了一条捷径,简化数 据查询操作.
7.1.3 视图在“选课系统”中的应用
原来的course表的结构: dese course;
从现在开始,新课程course表中比原来的课程 course表多了一个“剩余的学生名 额”available字段。 任务布置2:上机操作,完成本书场景描述2的 任务要求。
7.1.3 视图在“选课系统”中的应用
7.1.3 视图在“选课系统”中的应用
• 3、从视图中获取信息修改原表的数据.
• update course • set available=up_limit• (select student_num from available_course_view • where course_no=course.course_no);
7.1.1 创建视图
任务布置1: “对于经常使用的、结构复杂的 select语句,建议将其封装为视图 ”。 例如:为统计每门课程还能供多少同学选修, 定义名为 available_course_view的视图。
create view available_course_view AS select course.course_no,course_name,teacher_name, up_limit,count(*) as student_num, up_limit-count(*) as available from teacher inner join course on teacher.teacher_no=course.teacher_no inner join choose on choose.course_no=course.course_no group by course.course_no; Select * from available_course_view;
• • • • 创建所有班级的学生情况视图 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;
相关文档
最新文档