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基础之视图相关推荐
- MySQL 基础篇 -- 视图
文章目录 一.简介 二.使用视图 2.1 创建视图 2.2 查看视图 2.3 修改视图 2.4 删除视图 三.更新视图 3.1 更新视图中的数据 3.2 不可更新的视图 四.小结 4.1 视图优点 4 ...
- Mysql基础知识--视图
一.视图的操作 为了提高SQL语句的复用性和操作表的安全性,,MySQL数据库管理系统5提供了视图特性. 视图:本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的行和列数据.但是视图并不在 ...
- mysql 基础视图_MySQL基础(4) | 视图
MySQL基础(4) | 视图 基本语法 1.创建 CREATE VIEW AS 语法说明如下. :指定视图的名称.该名称在数据库中必须是唯一的,不能与其他表或视图同名. :指定创建视图的 SELEC ...
- mysql. 表和视图同名_MySQL基础(4) | 视图
MySQL基础(4) | 视图 基本语法 1.创建 CREATE VIEW AS 语法说明如下. :指定视图的名称.该名称在数据库中必须是唯一的,不能与其他表或视图同名. :指定创建视图的 SELEC ...
- MySql基础篇---004 其它数据库对象篇:视图,存储过程与函数,变量、流程控制与游标 ,触发器
第14章_视图 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 常见的数据库对象 对象 描述 表(TABLE) 表是存储数据的逻辑单元,以行和列的形 ...
- MySQL基础篇-第14章_视图
第14章_视图 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 常见的数据库对象 对象 描述 表(TABLE) 表是存储数据的逻辑单元,以行和列的形 ...
- MySQL基础篇09【视图】
目录 1. 常见的数据库对象 2. 视图概述 2.1 视图的理解 3. 创建视图 3.1 创建单表视图 3.2 创建多表联合视图 3.3 基于视图创建视图 4. 查看视图 5. 更新视图的数据 5.1 ...
- 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 ...
- mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...
从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程 课程目录 (1) 01MySQL基础_课程引入.avi (2) 02MySQL基础_为什么学习 ...
最新文章
- vue中使用moment来实现导出excel时添加格式化的时间戳
- Kafka参数图鉴——unclean.leader.election.enable
- 码说 | 并查集(以HDU1232为例)
- 洛谷P2709 小B的询问
- flashtorch:卷积神经网络的可视化
- 4.docker 添加国内镜像
- Google sheet 设置下拉列表
- 一个软件完整的开发流程,不会程序也能自己制作手机App
- 将一个文件伪装在另一个文件下
- 命令行方式实现QQ自动登录
- 基于mongoose的httpclient配置SSL与cookie
- 巴比特MatPool运营NEO节点,2019年必定是 Staking 经济元年
- 2021年展望Android原生开发的现状,你不懂还不学?
- Jquery绑定focus事件遇到的问题
- 中创算力|分布式维基百科新语言版本服务上线,IPFS助力Web3.0!
- 网关,路由,局域网内的通信及不同的网络间通信实现的原理剖析
- PL2303GL USB 转串行桥接控制器
- NAVICAT FOR MYSQL存储过程
- Photoshop文字之——制作斑驳铁锈文字
- lego-loam学习笔记(一)
热门文章
- 关于stm32f407wifi模块的设置_料粉定量称重模块,罐子称重传感器
- c语言程序设计歌手大奖赛,C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委...
- latex 中文_【小白向】LaTeX 中文入门
- 【数据库】兴唐第二十六节课作业
- 三极管在ad中的原理图库_555时基电路内部结构及其工作原理
- 微信小程序自定义组件之Picker组件
- iOS 开发者账号 到期续费问题
- FZU 2297 Number theory【线段树/单点更新/思维】
- Parentheses Balance (括号平衡)---栈
- Mozilla公布WebVR API标准草案