原文:mysql基础之视图

在查询中,我们经常把查询结果 当成临时表来看.

View是什么? View可以看一张虚拟表. 是表通过某种运算得到的一个投影.

既然视图只是表的某种查询的投影,所以主要步骤在于查询表上.查询的结果命名为视图就可以了.

视图与表的关系

视图是表的查询结果,自然表的数据改变了,影响视图的结果.

视图改变了呢?

0: 视图增删改也会影响表

1: 但是,视图并是总是能增删改的.

视图某种情况下,是可以修改的.

要求: 视图的数据和表的数据 11对应. 就像函数的映射.

表-->推出视图对应的数据

视图-->推出表对应的数据

视图的定义:

视图是由查询结果形成的一张虚拟表.是sql查询结果

视图的创建语法:

Create view 视图名 as  select 语句;

视图的删除语法:

Drop view 视图名

视图的修改

Alter view 视图名 as select xxxxxx

为什么要视图?

答:1:可以简化查询

2: 可以进行权限控制

把表的权限封闭,但是开放相应的视图权限,视图里只开放部分数据

3: 大数据分表时可以用到

比如,表的行数超过200万行时,就会变慢,

可以把一张的表的数据拆成4张表来存放.

视图的algorithm

Algorithm = merge/ temptable/ undefined

Merge: 当引用视图时,引用视图的语句与定义视图的语句合并.

Temptable:当引用视图时,根据视图的创建语句建立一个临时表

Undefined:未定义,自动,让系统帮你选.

Merge,意味着视图只是一个规则,语句规则, 当查询视图时,

把查询视图的语句(比如where那些)与创建时的语句where子句等合并,分析.

形成一条select 语句.

例: 创建视图的语句:

mysql> create view g2 as select goods_id,cat_id,goods_name,shop_price from goods where shop_price>2000

查询视图的语句:

select * from g2  where shop_price < 3000;

最终执行的语句:

select goods_id,cat_id,goods_name,shop_price from goods where shop_price > 2000 and shop_price < 3000

而temptable是根据创建语句瞬间创建一张临时表,

然后查询视图的语句从该临时表查数据.

create algorethm=temptable view g2 as select goods_id,cat_id,goods_name,shop_price from goods where shop_price > 2000

查询视图的语句:

select * from g2  where shop_price < 3000;

最终执行的2句话: 取数据并放在临时表,然后去查临时表.

Select  goods_id,cat_id,goods_name,shop_price from goods where shop_price > 2000;

========> temptable

再次查临时表

Select * from temptable where shop_price< 3000

mysql基础之视图相关推荐

  1. MySQL 基础篇 -- 视图

    文章目录 一.简介 二.使用视图 2.1 创建视图 2.2 查看视图 2.3 修改视图 2.4 删除视图 三.更新视图 3.1 更新视图中的数据 3.2 不可更新的视图 四.小结 4.1 视图优点 4 ...

  2. Mysql基础知识--视图

    一.视图的操作 为了提高SQL语句的复用性和操作表的安全性,,MySQL数据库管理系统5提供了视图特性. 视图:本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的行和列数据.但是视图并不在 ...

  3. mysql 基础视图_MySQL基础(4) | 视图

    MySQL基础(4) | 视图 基本语法 1.创建 CREATE VIEW AS 语法说明如下. :指定视图的名称.该名称在数据库中必须是唯一的,不能与其他表或视图同名. :指定创建视图的 SELEC ...

  4. mysql. 表和视图同名_MySQL基础(4) | 视图

    MySQL基础(4) | 视图 基本语法 1.创建 CREATE VIEW AS 语法说明如下. :指定视图的名称.该名称在数据库中必须是唯一的,不能与其他表或视图同名. :指定创建视图的 SELEC ...

  5. MySql基础篇---004 其它数据库对象篇:视图,存储过程与函数,变量、流程控制与游标 ,触发器

    第14章_视图 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 常见的数据库对象 对象 描述 表(TABLE) 表是存储数据的逻辑单元,以行和列的形 ...

  6. MySQL基础篇-第14章_视图

    第14章_视图 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 常见的数据库对象 对象 描述 表(TABLE) 表是存储数据的逻辑单元,以行和列的形 ...

  7. MySQL基础篇09【视图】

    目录 1. 常见的数据库对象 2. 视图概述 2.1 视图的理解 3. 创建视图 3.1 创建单表视图 3.2 创建多表联合视图 3.3 基于视图创建视图 4. 查看视图 5. 更新视图的数据 5.1 ...

  8. mysql基础(九) 索引和视图

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  9. mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...

    从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程 课程目录 (1) 01MySQL基础_课程引入.avi (2) 02MySQL基础_为什么学习 ...

最新文章

  1. vue中使用moment来实现导出excel时添加格式化的时间戳
  2. Kafka参数图鉴——unclean.leader.election.enable
  3. 码说 | 并查集(以HDU1232为例)
  4. 洛谷P2709 小B的询问
  5. flashtorch:卷积神经网络的可视化
  6. 4.docker 添加国内镜像
  7. Google sheet 设置下拉列表
  8. 一个软件完整的开发流程,不会程序也能自己制作手机App
  9. 将一个文件伪装在另一个文件下
  10. 命令行方式实现QQ自动登录
  11. 基于mongoose的httpclient配置SSL与cookie
  12. 巴比特MatPool运营NEO节点,2019年必定是 Staking 经济元年
  13. 2021年展望Android原生开发的现状,你不懂还不学?
  14. Jquery绑定focus事件遇到的问题
  15. 中创算力|分布式维基百科新语言版本服务上线,IPFS助力Web3.0!
  16. 网关,路由,局域网内的通信及不同的网络间通信实现的原理剖析
  17. ‎PL2303GL‎‎ ‎‎USB 转串行桥接控制器‎
  18. NAVICAT FOR MYSQL存储过程
  19. Photoshop文字之——制作斑驳铁锈文字
  20. lego-loam学习笔记(一)

热门文章

  1. 关于stm32f407wifi模块的设置_料粉定量称重模块,罐子称重传感器
  2. c语言程序设计歌手大奖赛,C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委...
  3. latex 中文_【小白向】LaTeX 中文入门
  4. 【数据库】兴唐第二十六节课作业
  5. 三极管在ad中的原理图库_555时基电路内部结构及其工作原理
  6. 微信小程序自定义组件之Picker组件
  7. iOS 开发者账号 到期续费问题
  8. FZU 2297 Number theory【线段树/单点更新/思维】
  9. Parentheses Balance (括号平衡)---栈
  10. Mozilla公布WebVR API标准草案