授课课时:2 授课地点:三教202
授课形式:教学做合一
教学目标
(一)知识目标:
- 理解视图概念及作用。
- 掌握创建视图的SQL语法。
(二)能力目标:
- 学会创建特定行和列的视图。
- 掌握使用视图进行数据查询。
(三)素质目标:
- 培养数据抽象思维。
- 提升数据库操作技能。
教学重难点
(一)重点:创建视图的语法和方法。
(二)难点:理解视图不存储数据的概念。
教学资源
教科书、PPT、 Navicat 、’头歌’在线实验平台
教学方法
(一)教法
1.情境创设法 2.任务驱动教学 3.类比教学法
(二)学法
1.探究式学习 2.练习巩固法 3.归纳总结法
教学过程设计
(一)课前任务
熟悉SQL基础,了解视图定义及其与表的关系。
(二)课程导入
视图是基于一个或多个表的虚拟表,存储查询而不是数据。但是为什么我们需要视图?它们对我们有什么帮助?让我们讨论一下视图的优点,例如提高安全性并简化复杂查询。
(三)知识储备
- 视图的基本概念
- 视图是基于一个或多个表的虚拟表。
- 视图本身不存储数据,而是存储查询。
- 创建视图
- 语法:
CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
- 示例:从
employees
表中创建一个视图,只显示employee_id
和employee_name
列。
- 语法:
CREATE VIEW employee_view AS SELECT employee_id, employee_name FROM employees;
3.查询视图
- 语法:
SELECT * FROM view_name;
- 示例:查询
employee_view
视图。
SELECT * FROM employee_view;
(四)学生项目实践:
学生在 MySQL 数据库中创建一个名为 student_grades
的表,包含以下列:student_id
(学生编号)、student_name
(学生姓名)、course_id
(课程编号)、course_name
(课程名称)、grade
(成绩)。
学生向表中插入一些测试数据。
学生创建一个名为 student_grades_view
的视图,选择 student_grades
表中部分行和列进行显示。例如,只显示 course_id
为 101 的课程的成绩。
学生使用以下 SQL 语句创建视图:
CREATE VIEW student_grades_view AS
SELECT student_id, student_name, course_name, grade
FROM student_grades
WHERE course_id = 101;
学生可以像查询表一样查询视图:
SELECT * FROM student_grades_view;
学生可以对比直接查询 student_grades
表和查询 student_grades_view
视图的结果,观察它们的区别。
课程总结:
本课程深入探讨了视图的概念及其应用,重点讲解了如何利用SQL语言精准地创建特定行和列的视图。
课后作业
创建一个视图 top_students_view
,显示 student_grades
表中平均成绩最高的前 5 名学生。
查询 top_students_view
并将结果与直接查询 student_grades
表进行比较。两个结果有什么区别?
课后教学反思
要把握课程的核心,如让学生理解视图的本质:它不直接存储数据,而是存储了对数据的查询逻辑。