MySQL视图详解

视图的简介

        视图:view 是一种有结构(有行有列)但是没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义,而是从对应的基表中产生的(视图的数据来源)

视图的意义

1.     视图可以节省SQL语句: 将一条复杂的查询语句使用视图进行保存: 以后可以直接对视图进行操作

2.     数据安全: 视图操作是主要针对查询的, 如果对视图结构进行处理(删除), 不会影响基表数据(相对安全).

3.     视图往往是在大项目中使用, 而且是多系统使用: 可以对外提供有用的数据, 但是隐藏关键(无用)的数据: 数据安全

4.    视图可以对外提供友好型: 不同的视图提供不同的数据, 对外好像专门设计

5.    视图可以更好(容易)的进行权限控制



创建视图

基本语法 create view 视图名字 as select 语句,select语句可以是普通查询,可以是连接查询,可以是联合查询,也可以是子查询

创建单表视图:基表只有一个


单表视图

创建多表视图:基表至少得有2个以上

多表视图



查看视图

        视图相当于一张虚拟表,适用于表的所有查看方式都适用于视图:show    tables    like/desc    视图名字


查看视图

        查看视图的创建语句 show create table/view 视图名字;


show table查看方法


show view查看方法

视图创建成功后会再对应的数据库文件夹下创建一个对应的结构文件:frm文件


目录中对应的frm文件



视图的使用

    使用视图主要是为了查询:将视图当做表一样查询即可


查询my_v1结果


查询多表视图my_v2结果

        视图的执行:其实本质就是封装的select语句



修改视图

        视图本身不可以修改,但是视图的来源可以修改

        修改视图:修改视图本身的来源语句(select语句)

        Alter view 视图名字 as 新的 select 语句



视图修改之前


视图修改之后少了一个`number`字段



删除视图


删除视图



视图的数据操作

        视图可以进行数据写操作:但是有很多限制

        将数据直接在视图上进行操作

新增数据

        数据新增就是直接对视图进行数据新增

        1:多表视图不能新增数据


多表视图的新增数据

        2:可以向单表视图插入数据:但是视图中包含的字段必须有,基表中所有不能为空的字段(或者没有默认值)字段


视图新增数据:单表

            需注意我这里相对于基表中少了一个`number`字段但是能插入成功的原因是我默认了基表中的`number`允许为空,否则是插入不进去会报错的


单表视图的查询结果
单表视图基表的查询结果,注意number为NULL



删除数据

    多表视图不能删除数据


视图多表删除报错

    单表视图可以删除数据

单表视图删除数据成功


单表视图删除结果查看



更新数据

            理论上不论是单表视图还是多表视图都可以更新数据


多表视图更新数据前


多表视图更新数据后的结果


单表视图更新数据前


单表视图更新数据后

更新限制: 

with    check     option, 如果对视图在新增的时候,限定了某个字段有限制: 那么在对视图进行数据更新操作时,系统会进行验证: 要保证更新之后,数据依然可以被实体查询出来,否则不让更新.

创建一个更新字段限制的视图


表视视图的数据来源都是年龄大于30岁:where age > 30 决定


不能将已经得到的数据改成小于30 的


将已经得到的数据改成小于30的会报错

            修改合格数据

数据修改之前


数据修改之后



   视图算法

视图算法: 系统对视图以及外部查询视图的Select语句的一种解析方式.

视图算法分为三种

Undefined: 未定义(默认的), 这不是一种实际使用算法, 是一种推卸责任的算法: 告诉系统,视图没有定义算法, 系统自己看着办

Temptable: 临时表算法: 系统应该先执行视图的select语句,后执行外部查询语句

Merge: 合并算法: 系统应该先将视图对应的select语句与外部查询视图的select语句进行合并,然后执行(效率高: 常态)

算法指定: 在创建视图的时候

Create algorithm = 指定算法 view 视图名字 as select语句;


查询所有,升高降序排列

视图算法选择:

 如果视图的select语句中会包含一个查询子句(五子句), 而且很有可能顺序比外部的查询语句要靠后, 一定要使用算法temptable,其他情况可以不用指定(默认即可).

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,777评论 5 116
  • 观其大纲 page 01 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 M...
    周少言阅读 3,150评论 0 33
  • 作者:烨竹 数据库的基本操作 登陆MySQL数据库服务:mysql -h服务器地址 -P端口号 -u用户名 ...
    DragonRat阅读 1,360评论 0 7
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,698评论 0 44
  • 今天上海的落日很美,骑着车追赶落日的时候,不由想起下面这段话: これまで、朝日から逃げるように西へ、夕日に背を向け...
    Ireneyan阅读 312评论 0 1