视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成,仅仅是用来产看储存在别处的数据的一种设施。

创建视图

>CREATE VIEW 视图名(列1,列2...) AS SELECT (列1,列2...) FROM ...;

  如果在创建视图的时候制定了“WITH CHECK OPTION”,那么更新数据时不能插入或更新不符合视图限制条件的记录

查看视图详情

>DESC 视图名;
或者
>SHOW FIELDS FROM 视图名;

查看创建试图的语句

show create view v_name;

查看数据库中的视图

  因为视图就是一张虚拟表,所以查看视图和查看表的语句一样

show tables;

也可以用like模糊查询,这时需要创建视图命名有一些特别,比如v_...

注意

  1. 试图可以嵌套,即可以利用从其他试图中检索数据的查询来构造一个试图
  2. order by可以在视图中,但从视图中检索的select语句中也有order by,那么视图中的order by将会被覆盖
  3. 视图不可以索引,也不能有关联的触发器或默认值
  4. 可以编写联结视图和表的select语句
  5. 使用视图时使用表的组成部分而不是整个表
  6. 如果从视图中检索数据时使用了where字句,则两组字句(一组在视图中另一种是传递给视图的将自动组合)

更新视图

  更新视图实际上是更新基表,因为视图本身没有数据,对视图进行跟新或删除就是对基表进行更新或删除

CREATE OR REPLACE VIEW 视图名 AS SELECT [...] FROM [...];

  可以通过视图插入数据,但是只能基于一个基础表进行插入,不能跨表更新数据。

不是所有视图都可以被更新的,如果mysql不能正确的确认被更新的基数据,则不允许更新,如果定义视图有以下操作,则不允许更新

  1. 分组(group by和having)
  2. 联结
  3. 子查询
  4. 聚集函数(min(),max(),count(),sum()等)
  5. distinct
  6. 导出(计算)列

MySQL中视图的更多相关文章

  1. MySQL中视图和普通表的区别

    1.视图是数据库数据的特定子集.可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据,这种方法可以保护用户和应用程序不受某些数据库修改的影响. 2.视图是抽象的,他在使用时,从表里提取出数据, ...

  2. MySQL 中视图和表的区别以及联系是什么?

    两者的区别: (1)视图是已经编译好的 SQL 语句,是基于 SQL 语句的结果集的可视化的表,而表不是. (2)视图没有实际的物理记录,而基本表有. (3)表是内容,视图是窗口. (4)表占用物理空 ...

  3. MySQL中视图的定义、原理--触发器

    视图概述 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用 ...

  4. MySQL之视图学习

    MYSQL---视图 1.概述: ​ 视图是从一个或者多个表中导出的,视图的行为与表非常类似,但视图是一个虚拟表.在视图中用户可以使用SELECT语句查询数据,以及使用INSERT.UPDATE和DE ...

  5. 在Navicat for MySQL中打开视图时,提示视图没有主键的问题

    一直把视图理解为一个select语句而已,视图一般就是用于查询,不会通过视图来更新表或视图本身的数据,所以视图根本不需要什么主键.今天自己建了一个视图view_test: drop view if e ...

  6. Mysql中的视图

    什么是视图 通俗的讲,视图就是一条SELECT语句执行后返回的结果集.所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上. 视图的特性 视图是对若干张基本表的引用,一张虚表,查询语句执 ...

  7. MySQL中函数、游标、事件、视图

    MySQL中函数.游标.事件.视图基本应用举例(代码) MySQL中function用户自定义函数c,fun,fun是面向过程的实现方式只能传入参数,或不传入参数,不能传出参数,必有返回值函数中是不能 ...

  8. MySQL中函数、游标、事件、视图基本应用举例(代码)

    MySQL中function用户自定义函数c,fun,fun是面向过程的实现方式只能传入参数,或不传入参数,不能传出参数,必有返回值函数中是不能有create table drop table之类的语 ...

  9. mysql中,什么是视图,视图的作用是什么?

    需求描述: 在看mysql的视图,对于视图的定义,进行基本的了解,在此记录下. 概念解释: 视图:存储的查询语句,当调用的时候,产生结果集,视图充当的是虚拟表的角色. 测试过程: 说明: 如果要对一张 ...

随机推荐

  1. python笔记1-基础概念、python安装使用配置

    Python 1.基础概念 一.什么是python? python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学.在1989诞生,Guido(龟叔)开发.这里的python并不 ...

  2. Linux文件系统命令 mv

    命令名:mv 功能:移动一个文件,从一个位置到另外一个位置. 用法:mv source_dir dist_dir eg: renjg@renjg-HP-Compaq-Pro--MT:/var/tmp$ ...

  3. JavaWeb:一个Servelt多个请求

    一个Servelt多个请求 基础模拟 方法一:使用switch方法  一.方法介绍 方法:switch 优点:方法简单,明了 缺点:维护麻烦,保密性不好 二.代码实现 1.servlet类 packa ...

  4. shell脚本实例-批量检查多个网站地址是否正常

    #!/usr/bin/bash [ -f /etc/init.d/functions ] && . /etc/init.d/functions array=( http://www.w ...

  5. android小程序-电子钢琴-滑动连续响应

    原创文字,转载请标明出处: 利用Button实现简单地电子钢琴,可以简单地响应按钮的click事件来发出相应的声音.但是这样不能达到手指在屏幕滑动,而连续发声的效果,就像手指在真实钢琴按键上滑过一样. ...

  6. JAVA拼合数组方法

    方法一: package org.ken.array; import java.lang.reflect.Array; import java.util.Arrays; public class Jo ...

  7. Netty核心概念

    一个Netty程序始于Bootstrap类,Bootstrap类是Netty提供的一个可以通过简单配置来设置或“引导”程序的一个重要的类.Netty中设计了Handlers来处理特定的"ev ...

  8. 推荐系统-0X-电影推荐与结果评估

    import spark.sql import org.apache.spark.sql.types._ import org.apache.spark.mllib.recommendation.AL ...

  9. 关于Q-LEARNING的优化

    Q-LEARNING 最后得到的一个图寻路最佳路径:---直接转化为图关于多顶点深度遍历热度传递 V(level+1) = 0.8 * Max(Vi(level))   这个方法可以在O时间收敛 原方 ...

  10. Android Hook框架adbi源码浅析(一)

    adbi(The Android Dynamic Binary Instrumentation Toolkit)是一个Android平台通用hook框架,基于动态库注入与inline hook技术实现 ...