mysql视图原理与用法实例详解

 更新时间:2020年04月16日 10:43:32   作者:随风行云  
这篇文章主要介绍了mysql视图原理与用法,结合实例形式详细分析了mysql视图的概念、原理、使用方法及操作注意事项,需要的朋友可以参考下

本文实例讲述了mysql视图原理与用法。分享给大家供大家参考,具体如下:

本文内容:

  • 什么是视图
  • 创建视图
  • 查看视图
  • 视图的修改
  • 视图的删除
  • 视图的数据操作

首发日期:2018-04-13


什么是视图:

  • 视图是一种基于查询结果的虚拟表,数据来源的表称为基本表。
  • 视图的建立和删除不影响基本表。
  • 视图的插入,修改操作会影响基本表。
  • 如果视图来自多个基本表,那么不可以修改基本表。
  • 视图的用处:
    • 1.视图基于查询结果,使得视图可以隐藏基本表一些不该展示给用户的数据信息(比如某个开发人员需要用户信息表,但不应该展示给他用户的密码信息。)
    • 2.视图是一个虚拟表,可以将查询信息存储到视图中,这样可以便于操作。
    • ......


创建视图:

  • 语法:create view 视图名 as select语句 [with check option];【select语句可以多表查询结果:联合查询、连接查询】
    • with check option会依据where等条件语句来限制插入和修改操作(比如检索出来的视图数据是男的,不允许将男的改成女的)
        create view man_info as select * from student where gender="male";

补充:

  • 视图的创建还有一个可选项:视图算法(这里不讲述,想了解的可以百度)


查看视图:

  • 视图是一个虚拟表,针对表的查看语句都可以使用到视图中
    • 查看所有视图:show tables/views;
    • 查看视图结构:desc/describe/show columns from 视图名;
    • 查看视图创建语句:show create table/view 视图名;

视图的修改:

  • 有时候可能发生定义视图错误,所以这时候会执行修改视图操作。
  • 语法:alter view 视图名 as 新的select语句;
create view user_view as select * from user;
alter view user_view as select username,money from user;

补充:

  • 由于视图是一种虚拟表,还有一种可以修改视图的方法:create or replace view 视图创建语句;【将以新的视图覆盖旧视图】

视图的删除:

  • 语法:drop view 视图名[,视图名…];
  • 示例:
    drop view student_class,student_info;

视图的数据操作:

  • 如果视图来自多个基本表,那么不可以修改基本表。不过理论上update是允许的。

视图的数据查看:

  • 语法:select 字段列表 from 视图名;【与基本表的查询操作是一致的。】

视图的数据插入:

  • 数据来源自多个基本表时,无法进行插入操作。
  • 语法:insert into 视图名 values();【与基本表的插入操作是一致的。】
  • 注意:视图结构来自于基本表,所以要接受基本表的约束。如果某个字段不允许为空,但视图的插入操作又没赋值的话,会插入失败。

视图的数据修改:

  • 语法:update 视图名 set 字段名 = 值 where 条件;【与基本表的修改操作是一致的。】

视图的数据删除:

  • 数据来源自多个基本表时,无法进行删除操作。
  • 语法:delete from 视图名 where 条件;【与基本表的删除操作是一致的。】

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总

希望本文所述对大家MySQL数据库计有所帮助。

相关文章

  • mysql 松散的索引扫描(Loose index scan)

    mysql 松散的索引扫描(Loose index scan)

    今天读《High Performance MySQL》,发现一个“Loose index scan”,之前完全没有听说过。网上查了些资料,这个叫松散的索引扫描(Loose index scan)
    2016-05-05
  • MySQL是怎么保证主备一致的

    MySQL是怎么保证主备一致的

    大家知道 binlog 可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了 binlog 就可以跟主库保持一致了呢,本文就详细的介绍一下
    2021-09-09
  • Ubuntu自启动Mysql的三种方式

    Ubuntu自启动Mysql的三种方式

    本文给大家介绍ubuntu自启动mysql的三种方式,一种方法通过执行命令,也是最简单的方法,第二种方法是使用sysv-rc-cont工具,第三种方法是使用chkconfig工具,关于以上三种方式的详解请看下文
    2015-10-10
  • mysql 8.0.15 版本安装教程 连接Navicat.list

    mysql 8.0.15 版本安装教程 连接Navicat.list

    这篇文章主要为大家详细介绍了mysql 8.0.15 版本安装教程,连接Navicat.list,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 基于MySQL游标的具体使用详解

    基于MySQL游标的具体使用详解

    本篇文章是对MySQL游标的具体使用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • mysql查询表里的重复数据方法

    mysql查询表里的重复数据方法

    这篇文章主要介绍了mysql查询表里的重复数据方法,需要的朋友可以参考下
    2017-05-05
  • MySQL如何统计一个数据库所有表的数据量

    MySQL如何统计一个数据库所有表的数据量

    最近在做统计想查找一个数据库里基本所有的表数据量,下面这篇文章主要给大家介绍了关于MySQL如何统计一个数据库所有表的数据量的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Mysql 5.7 新特性之 json 类型的增删改查操作和用法

    Mysql 5.7 新特性之 json 类型的增删改查操作和用法

    这篇文章主要介绍了Mysql 5.7 新特性之json 类型的增删改查,主要通过代码介绍mysql json类型的增删改查等基本操作的用法,需要的朋友可以参考下
    2022-09-09
  • MySQL导入与导出备份详解

    MySQL导入与导出备份详解

    大家好,本篇文章主要讲的是MySQL导入与导出备份详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Mysql的游标的定义使用及关闭深入分析

    Mysql的游标的定义使用及关闭深入分析

    于游标的用法Mysql现在提供的还很特别,虽然使用起来没有PL/SQL那么顺手,不过使用上大致上还是一样,本文将详细介绍一下,需要了解的朋友可以参考下
    2012-12-12

最新评论