美文网首页@IT·互联网技术研发汇集
【MySQL】mysql 视图转物化视图

【MySQL】mysql 视图转物化视图

作者: 知信学源 | 来源:发表于2024-01-27 10:48 被阅读0次

视图是从一个或多个表中导出来的表,是一种虚拟存在的表,并且表的结构和数据都依赖于基本表。通过视图可以看到基本表中的数据,也可以像操作基本表一样操作视图,进行增删改查。可以简化查询语句,具有更高的安全性,逻辑数据独立性。

视图管理

创建视图语法格式

CREATE [OR REPLACE] [ALGORITHM] = {UNDEFINED或者MERGE或者TEMPTABLE}

VIEW view_name [(column_list)]

AS SELECT_statement

[WITH [CASCADED或者LOCAL] CHECK OPTION]

CREATE 创建视图的关键字

OR REPLACE 该字句表示若已存在视图,则可替换

ALGORITHM 表示视图选择的算法

UNDEFINED 表示MySQL将自动选择所要的算法

MERGE 表示将使用视图的语句与视图定义合并起来,是的视图定义的某一部分取代语句的对应部分

TEMPTABLE 表示将视图的结果存入临时表,然后用临时表执行语句

view_name 视图名称

column_list 属性清单,指定视图中各个属性的名,默认情况下,与select语句中查询的属性相同

SELECT_statement 一个完整的查询语句,表示从某个表或视图中查出某些符合条件的记录,并导入视图中

WITH CHECK OPTION 表示创建视图时要保证在该视图的权限范围内

CASCADED 表示创建视图时,需要满足跟该视图有关的所有相关视图和表的条件,该参数为默认值

LOCAL 表示创建该视图时,只要满足该视图本身定义的条件即可

在单表上创建视图

例一:现有student表(id,name,math,chinese),创建视图包含数学成绩,语文成绩,总成绩

create VIEW view_stu as select math,chinese from student;create or replace VIEW view_stu as select math,chinese,math+chinese from student;create or replace VIEW view_stu2(数学,语文,总分) as select math,chinese,math+chinese from student;

在多表上创建视图

例一:现有一stu_info表(id,class,address),id为学生编号,创建视图,包含编号,姓名,班级

create view stu_class (编号,姓名,班级)asselect student.id,student.name,stu_info.class from student,stu_info where student.id=stu_info.id;

查看视图

DESCRIBE关键字

DESCRIBE 视图名;

或者

DESC 视图名;

SHOW TABLE STATUS语句

SHOW TABLE STATUS LIKE '视图名';

SHOW CREATE VIEW语句:查看视图创建语句

SHOW CREATE VIEW 视图名;

修改视图:修改视图的定义

CREATE OR REPLACE VIEW语句:重新创建一个视图覆盖前一个

例一:使用该语句修改view_stu视图

create or replace view view_stu as select * from student;

ALTER关键字

ALTER [ALGORITHM = {UNDEFINED或者MERGE或者TEMPTABLE}]

VIEW view_name [(column_list)]

AS SELECT_statement

[WITH[CASCADED或者LOCAL] CHECK OPTION]

例一:使用ALTER修改视图

alter view view_stu as select chinese from student;

更新视图

使用UPDATE语句更新视图,实际修改了原表中的数据

--例一:更新view_stu视图中chinese子段对应的数据值,改为100

UPDATE view_stu SET chinese = 100;

INSERT语句来更新视图

--例一:在原表中插入一条数据

insert into student values(null, 'lili',20,30);

DELETE语句来更新视图

--例一:删除视图里的一条记录

delete from view_stu where chinese=30;

注意:以下情况不更新

1、视图中不包含基本表中表定义为非空的列

2、定义视图的SELECT语句后的字段列表中使用了数学表达式

3、在定义视图的SELECT语句后的字段列表中使用了聚合函数

4、在定义视图的SELECT语句中使用了DISTINCT,UNION,TOP,GROUP BY或HAVING字句

删除视图

DROP VIEW [IF EXISTS] view_name [,view_name1]...[RESTRICT或者CASCADE]l;

例一:删除view_stu视图

drop view view_stu;

相关文章

  • Oracle性能调优之物化视图用法简介

    [TOC] 一、物化视图简介 物化视图分类物化视图分类,物化视图语法和as后面的sql分为: (1) 基于主键的物...

  • mysql 视图转表

  • mysql高级:视图、事务、索引

    # mysql高级:视图、事务、索引 * 视图 * 事务 * 索引 * 账户管理 * 主从 ## 1.视图 动态抽...

  • Oracle物化视图没有刷新

    参考 为支持物化视图快速刷新,需要为物化视图用到的每一张表创建视图日志 创建物化视图 使用物化视图,提前将需要分组...

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • mysql视图,触发器,存储过程优缺点及应用分析

    mysql视图,触发器,存储过程优缺点及应用分析 视图 mysql使用较少,是sql server和orcale使...

  • 数据库

    一、MySQL中视图与表的区别 1.1 MySQL中视图和表的区别以及联系 视图是已经编译好的SQL语句,是基于S...

  • SQL笔记--(3)--[物化视图]

    物化视图:物理储存的视图关系,如果用于定义视图的实际关系改变,试图也跟着修改。 物化视图维护:保持物化视图一直在最...

  • MySQL数据库基本操作(上)

    史上最简单的 MySQL 教程>>>MySQL运行机制原理&架构>>>触发器视图(上)视图(下)数据备份与还原(上...

  • 14 MySQL 视图

    MySQL 视图 [toc] 视图概述 视图介绍 什么是视图 虚拟表 内容与真实的表相似,有字段有记录 视图并不在...

网友评论

    本文标题:【MySQL】mysql 视图转物化视图

    本文链接:https://www.haomeiwen.com/subject/zaliodtx.html