学习目标:
1、了解视图的作用
2、熟练掌握视图的创建、更新、删除操作
3、熟练掌握自定义函数的创建和调用
4、理解函数和过程的区别
学习内容:
1、 视图
2、 函数
学习产出:
一、视图
1、 视图简介
- 为什么要使用视图?
a) 从三大范式当中,我们知道一张表只存一种实体的数据,但现实业务往往是,需要多个表的数据 关联呈现的,并且某些固定的列会被频繁的访问,视图可以避免频繁的编写这些关联查询语句;
b) 某些人可能只允许表中的部分列,不能将整个表的列或数据行暴露出来,我们可以为这些特定的 人创建一个视图,把权限给到这些人,起到对基表中的其他列和数据行进行安全保护;
视图中存储了可以返回结果集的 sql 查询语句,当用在 from 子句时,内部的 sql 查询语句就会被执行。
2) 什么是视图?
MySQL 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。 但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成
视图的优点:
简单化,数据所见即所得;
安全性,用户只能查询或修改他们所能见到得到的数据;
逻辑独立性,可以屏蔽真实表结构变化带来的影响。
视图的缺点:
性能相对较差,从视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的;
修改不方便,特别是复杂的聚合视图基本无法修改。
2、MySQL 中视图的使用
- 基于单表创建视图
任务 1-1:创建视图,显示学生姓名、性别、年龄和所在班级编号
-- 创建视图
create view v1
as
select
studentName,
gender,
age,
classid
from
studentinfo;
-- 通过视图查询
select * from v1;
运行结果:
创建视图的语法只是在原来的 select 语句前添加“create view 视图名 as”就可 以了
2) 使用别名的视图
任务 1-2:创建视图,显示学生姓名、性别、年龄和所在班级编号,并以中文表头显示
-- 创建视图
create view v2(姓名,性别,年龄,班级编号)
as
select
studentName,
gender,
age,
classid
from
studentinfo