MySQL视图概述

1.介绍

在传统关系型数据库里,视图有时也被称作虚表,是基于特定SQL结果集的虚拟数据表。在有些场合会变得很方便,例如:原有系统重构,旧的数据表A和B已经被拆分和合并到数据表C、D、F里面,为了实现平滑迁移不影响对外数据业务,可以分别创建和原有数据表A和B一致的视图G和H,再实现数据层升级,不影响现有业务。

2.创建

创建MySQL视图语法如下

CREATE
[ALGORITHM=[UNDEFINED | MERGE | TEMPTABLE] ]
[DEFINER=用户名]
[SQL SECURITY [DEFINER | INVOKER] ]
VIEW `视图名`AS
查询SQL
[WITH [CASCADED | LOCAL] CHECK OPTION];

参数说明

ALGORITHM  视图采取何种算法,不同的算法性能可能有很大差异,UNDEFINED即由MySQL自行决定采用何种算法

DEFINER  指定创建该视图的用户

SQL SECURITY  关于权限的定义,可选DEFINER和INVOKER,如果设置为DEFINER则使用该视图时候,前面的DEFINER需要用户需要有相应权限,如果设置为INVOKER,则需要当前调用者有相应权限

WITH CHECK OPTION  设置视图的数据完整性检查,如果不设置则增删改该视图的数据不作任何检查,如果设置为CASCADED则增删改数据需要满足该视图以及所有与之相关的视图(视图嵌套)定义的条件(如视图查询SQL为WHERE id > 5则不允许增删改这个条件外的数据),如果设置为LOCAL则只检查当前视图(不考虑视图嵌套),其他限制跟CASEDED一致

3.使用

使用方法与普通的MySQL表一致,相关特性也受对应实表的存储引擎影响。

时间: 2024-08-06 16:04:33

MySQL视图概述的相关文章

十、MySQL视图

数据库中的视图是一个虚拟表.同真实的表一样,视图包含一系列带有名称的行和列数据.行和列数据来自由定义视图查询所引用的表,并且在引用视图时动态生成. 10.1.视图概述 视图是从一个或多个表中导出的,视图的行为与表非常相似,但视图是一个虚拟表.在视图中用户可以使用SELECT语句查询,以及使用INSERT.UPDATE.DELETE修改记录. 视图是一个虚拟表,是从数据库中一个或多个表中导出来的表.试图还可以从已存在的视图的基础上定义.视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样在

4 mysql视图

目录: 1. 视图概述 1.1 为什么引入视图 1.2 什么是视图 1.3 视图的好处 1.4 视图的分类 2. 视图的建立和删除 3. 实验 1. 视图概述 1.1 为什么引入视图[1] 问题:假如因为某种需要,a表与b表需要进行合并起来组成一个新的表c.最后a表与b表都不会存在了.而由于原来程序中编写sql分别是基于a表与b表查询的,这就意味着需要重新编写大量的sql(改成向c表去操作数据). 解决方案:定义两个视图名字还是原来的表名a和b.a.b视图完成从c表中取出内容.通过视图就可以做到

MySQL视图介绍

数据准备 创建数据库.导入数据 [[email protected] ~]# mysql -uroot -p -e"create database viewdb;" Enter password: [[email protected] ~]# mysql -uroot -p viewdb< viewdb.sql Enter password: mysql> show databases; +--------------------+ | Database          

6 MySQL视图

目录: 1. 视图概述 1.1 为什么引入视图 1.2 什么是视图 1.3 视图的好处 1.4 视图的分类 2. 视图的建立和删除 3. 实验 1. 视图概述 1.1 为什么引入视图[1] 问题:假如因为某种需要,a表与b表需要进行合并起来组成一个新的表c.最后a表与b表都不会存在了.而由于原来程序中编写sql分别是基于a表与b表查询的,这就意味着需要重新编写大量的sql(改成向c表去操作数据). 解决方案:定义两个视图名字还是原来的表名a和b.a.b视图完成从c表中取出内容.通过视图就可以做到

MySql视图原理讲解与使用大全

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了MySql中视图的定义.原理和如何使用.创建.删除等 一. 视图概述 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成.        对其中所引用的基础表来说,视图的作用类似于筛选.定义视图的筛选可以来自当前或其它数据

MySQL优化概述

MySQL优化概述 设计: 存储引擎,字段类型,范式 功能: 索引,缓存,分区. 架构: 主从复制,读写分离,负载均衡. 合理SQL: 测试,经验. 存储引擎 Create table tableName () engine=myisam|innodb; 一种用来存储MySQL中对象(记录和索引)的一种特定的结构(文件结构) 存储引擎,处于MySQL服务器的最底层,直接存储数据.导致上层的操作,依赖于存储引擎的选择. Tip:存储引擎就是特定的数据存储格式(方案) Show engines 查看

7Python全站之路系列之MySQL视图

Python全栈之路系列之MySQL视图 视图是一个虚拟表(非真实存在),其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用名称即可获取结果集,并可以将其当作表来使用. 创建视图 创建一个名称为v1的视图,其功能就是查询color表中的所有数据 CREATE VIEW v1 AS SELECT * FROM color; 查看视图 使用视图时,将其当作表进行操作即可,由于视图是虚拟表,所以无法使用其对真实表进行创建.更新和删除操作,仅能做查询用. select * from 

第11章 mysql 视图

2015-10-24 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] 范德兰斯.MySQL开发者SQL权威指南 [M].北京:机械工业出版社,2008 [4] Forta.MySQL必知必会 [M].北京:人民邮电出版社,2009 [5] mysql视图学习总结 [6] mysql之视图 [7] mysql之视图详解

八、mysql视图、存储过程、函数以及时间调度器

1.create or replace view emp_view as select * from t4 ;给t4表创建一个名为emp_view的视图 2.drop view emp_view 删除视图 ======================================= 1.创建一个存储过程(查询所有数据) create procedure p1 () READS SQL DATA BEGIN select * from t4; END 2.创建一个存储过程(查询传参数据) cre