当前课程知识点:MySQL数据库案例教程 >  第4章 查询与视图 >  4.6 视图 >  4-6视图视频1

返回《MySQL数据库案例教程》慕课在线视频课程列表

4-6视图视频1在线视频

下一节:4-6视图视频2

返回《MySQL数据库案例教程》慕课在线视频列表

4-6视图视频1课程教案、知识点、字幕

同学们好

今天我们学习第4章

查询与视图

本次课的学习内容是:视图

前面我们学习了数据的查询

同学们有没有想过把查询结果保存起来

方便多次查看呢?

在数据库中有一种对象叫做视图

不仅可以保存查询

还可以对基本表的数据进行

增删改查的操作

下面我们就来学习视图的概念

视图基本的操作

以及如何通过视图操作基本表的数据

那什么是视图呢?

视图是用户从一个特定的角度

来查看数据库中的数据

是从基本表中导出来的虚表

其内容由查询定义

但是

视图并不在数据库中以存储的数据值集形式存在

行和列数据由定义视图的查询所引用的表

并且在引用视图时动态生成

使用视图有几个优点

第一,简化查询语句

若视图本身就是一个复杂查询的结果集

这样在每一次执行相同的查询时

不必重新写这些复杂的查询语句

只要一条简单的查询视图语句即可

第二,安全性

视图能够实现让不同的用户

以不同的方式看到不同或相同的数据集

用户只能通过视图查询和修改

他们所能见到的数据

对于视图之外的数据无法操作

3,屏蔽数据库的复杂性

用户不必了解复杂的数据库中的表结构

并且

数据库表的更改也不影响用户对数据库的使用

那接下来我们就来学习如何创建视图

创建视图是语法是

CREATE [OR REPLACE]

[ALGORITHM = {UNDEFINED

或 MERGE 或TEMPTABLE}]

[DEFINER =

USER或CURRENT_USER

[SQL SECURITY

{ DEFINER 或 INVOKER

VIEW 视图名[(列名,…)]

AS SELECT 语句

[WITH [CASCADED或LOCAL] CHECK OPTION]

我们来看每个子句的含义

(1)CREATE [OR REPLACE]

VIEW 视图名[(列名,…)]

新建或替换原有视图

(2)ALGORITHM = {UNDEFINED

或 MERGE 或 TEMPTABLE}]

查询的算法选择是可选项

其中UNDEFINED表示自动选择算法

为默认值

MERGE表示视图定义

和查询该视图的语句合并执行

TEMPTABLE表示将查询结果放入临时表

然后用临时表查询

(3)DEFINER = { USER 或 CURRENT_USER

定义视图的用户

该项为可选项

可以是某个具体的用户

也可以是当前用户

默认为当前用户

(4)SQL SECURITY { DEFINER 或 INVOKER

可选项用于视图的安全控制

其中DEFINER表示按定义者指定的用户权限执行

INVOKER表示按调用视图的用户的权限来执行

(5)WITH [CASCADED或LOCAL] CHECK OPTION

视图的约束检查条件为可选项

其中CASCADED

用于满足所有视图和表定义的条件

LOCAL满足该视图本身定义的条件

来看案例

【案例1】

创建视图V1

查询student表中“化学工程系”的sid

sname,sex,department,年龄

要查询student表中“化学工程系”的sid

sname,sex,department,年龄

语句可以这样写

Select sid,sname,sex,department,

year(now())-year(birth)

From student

Where department=‘化学工程系’

那么怎么创建试图呢?

展开stu数据库选中视图

击右键

新建视图名

输入v1

sqlyog把创建视图的基本语法都展现出来

我们用户只需要选择相关参数

或者添加查询语句就可以

非常方便

在本例中

算法、用户、安全控制我们都采用了默认值

就不再设置了

输出项中有一个输出项不是表中字段

因此我们在视图名的后面添加列名

sid,sname,sex,department,age

执行,成功

刷新对象浏览器

可以看到视图下有v1视图了

除了这样创建

也可以在新查询编辑器窗口输入命令

Create view

v1(sid,sname,sex,department,age)

As Select sid,sname,sex,department,

year(now())-year(birth) From student

Where department=‘化学工程系’;

这种方式我不再演示了

请同学们在课下操作

接下来创建一个多表视图

来看【案例2】

创建多表视图V2

包含

sid,sname,cno,cname,result字段

查询sid,sname

cno,cname,result的语句可以这样写

Select s a.sid,sname

b.cno,cname,result

From student a

score b,course c

Where a.sid=b.sid and b.cno=c.cno

执行

查询出sid,sname,cno,cname,result字段

那视图怎么创建呢?

在新查询编辑器窗口输入命令

CREATE VIEW v2 AS

SELECT a.sid

sname,b.cno,cname,result

FROM student a,score b,course c

WHERE a.sid=b.sid AND b.cno=c.cno;

执行

v2视图创建成功

视图创建成功以后可以查看视图

查看有两种方法

(1)DESC[RIBE] 视图名

(2)SHOW CREATE VIEW 视图名

如describe v2

查询出v2视图创建的列信息

SHOW CREATE VIEW v1

查询创建视图v1的语句信息

查看的内容不同

使用时根据需要来进行选择

视图创建成功以后还可以对视图进行修改

修改视图可以使用

create or replace或alter view

后面语法与create view后语法相同

create or replace语法是新建或覆盖原有视图

alter则是修改原有视图

如将v1修改为查询所有学生的sid

sname,sex,department,年龄

可以使用

create or replace view

V1(sid,sname,sex,department,age)

As Select sid,sname,sex,department,

year(now())-year(birth)

From student

还可以使用界面方式

点击视图名

修改视图

修改相关属性即可

对于不需要的视图

我们可以执行删除视图操作

删除视图可以使用DROP view 视图名

比如DROP view aa

执行

删除掉AA视图

也可以通过快捷菜单删除

选中视图名,右键,删除视图即可

通过以上案例

我们学习了视图的创建

修改和查看删除视图的操作

本小结就先讲到这里

MySQL数据库案例教程课程列表:

第1章 数据库基础知识

-1.1 数据库基础知识

--1.1 数据库基础知识视频

--1-1数据库基础知识课件

-1.2 MySQL的安装与运行

--1-2MySQL安装与运行视频

--1-2MySQL安装与运行课件

--1-2MySQL安装与运行实训

-第1章 测试

第2章 数据库和表的基本操作

-2.1 数据库的基本操作

--2-1数据库的基本操作视频

--2-1数据库的基本操作课件

--2-1数据库的基本操作实训

-2.2 表的基本操作

--2-2表的基本操作视频

--2-2表的基本操作课件

--2-2表的基本操作实训

-2.3 MySQL数据类型

--2-3MySQL数据类型视频

--2-3MySQL数据类型课件

--2-3MySQL数据类型实训

-2.4 约束设置

--2-4约束设置视频

--2-4约束设置课件

--2-4约束设置实训

-2.5 索引

--2-5索引视频

--2-5索引课件

--2-5索引实训

-第2章测试

第3章 记录操作

-3.1 插入记录

--3-1 插入记录视频

--3-1插入记录课件

--3-1插入记录实训

-3.2 修改记录

--3-2修改记录视频

--3-2修改记录实训

--3-2修改记录课件

-3.3 删除记录

--3.3删除记录

--3-3删除记录实训

--3-3删除记录课件

-第3章 测试

第4章 查询与视图

-4.1 select语句

--4.1select 语句视频

--4-1select语句课件

--4-1select语句实训

-4.2 单表查询

--4-2-1select子句

--4-2-2where子句

--4-2-3group子句

--4-2单表查询实训

-4.3 多表查询

--4-3多表查询视频

--4-3多表查询课件

--4-3多表查询实训

-4.4 子查询

--4-4子查询视频1

--4-4子查询视频2

--4-4子查询课件

--4-4子查询实训

-4.5 外键

--4-5外键视频

--4-5外键课件

--4-5外键实训

-4.6 视图

--4-6视图视频1

--4-6视图视频2

--4-6视图课件

--4-6视图实训

-第4章测试

第5章 高级操作

-5.1 函数

--5-1自定义函数视频

--5-1系统函数

--5-1函数课件

--5-1 函数实训

-5.2 流程控制语句

--5-2流程控制语句视频

--5-2流程控制课件

--5-2流程控制实训

-5.3 事务与游标

--5-3事务与游标视频

--5-3事务与游标课件

--5.3事务与游标实训

-5.4 存储过程

--5-4存储过程视频

--5-4存储过程课件

--5-4存储过程实训

-5.5 触发器

--5-5触发器视频

--5-5触发器课件

--5-5触发器实训

-第5章测试

第6章 备份与还原

-6.1 数据库备份与还原

--6-1数据库备份与还原 视频

--6-1数据库备份与还原 课件

--6-1数据库备份与还原 实训

-6.2 异构数据源导入导出

--6-2异构数据源导入导出 视频

--6-2异构数据源导入导出 课件

--6-2异构数据源导入导出 实训

-第6章测试

第7章 用户与权限

-7.1 用户管理

--7-1用户管理 视频

--7-1用户管理 课件

--7-1用户管理 实训

-7.2 权限管理

--7.2 权限管理 视频

--7.2 权限管理 课件

--7.2 权限管理 实训

-7.3 应用实例开发

--7-3应用实例开发 视频

--7-3应用实例开发 课件

--7-3应用实例开发 实训

-第7章测试

4-6视图视频1笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。