一.什么是视图?

简单来说,视图就是从一张表中导出的虚拟表。视图拥有表的结构,但是在数据库中只有视图的定义,但是没有视图中的数据。

视图是由查询语句从一张表中导出来的数据,不是一张实际的表。

二.视图的作用

最大的用处就是将程序与表隔离开来,增加了安全性和简单性。

三.创建视图

创建视图是指在已有的表上创建视图,你可以在一张表上创建视图,你也可以在多张表上创建视图。

3.1查看创建视图的语法:

select Select_priv(表名用户是否有查询的权限),Create_view_priv(查看用户是否有建视图的权限) FROM   数据库.表名  WHERE  user="用户名"

例子:

select Select_priv ,Create_view_priv from mysql.user where user="root";

结果:

3.2创建视图步骤:

语法:create  view   视图名(视图中列属性)    as  select语句 ;(最简单化)

例子:首先我们来看看我们建立的表:

select * from text2;

结果:

创建语法:

create view v(vid,vnum1,vday) as select tid,tnum1,tday from text2;

查看:

SELECT * FROM study.v;

结果:一模一样

四.视图操作

4.1查看视图的结构:使用关键字  describe

例子:

describe v;

结果:

4.2修改视图

当视图基于表的数据改变时,那么我们就需要将修改视图来将视图和表的字段相同。

4.2.1使用关键字:create or replace view     使用这个语句当这个视图不存在时,他会自动创建一个表,如果他存在那么他将刷新一个表

语法:create  or  replace view 视图名【(属性清单)】  as  select语句

4.2.2使用关键字alter

语法:alter view 视图名 as select语句

五.更新视图

更新视图和更新表是一样的,同样也是使用update 语句

但是存在一点点的小小的限制在修改视图时。

以下几种情况不能更新视图

1.视图中含有聚合函数比如count( ),sum( ),max( ),min( )

2.视图中含有union,union all,distinct,group by having等聚合有关的关键字

3.常量视图

4.视图中包含子查询

六.删除视图

语法:drop view if exists 视图名

MySQL中的视图详解的更多相关文章

  1. MySQL系列详解三:MySQL中各类日志详解-技术流ken

    前言 日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 .下面分别对他们进行介绍. 查询日志 1.查看查询日志变 ...

  2. Mysql中explain作用详解

    一.MYSQL的索引 1.索引(Index):帮助Mysql高效获取数据的一种数据结构.用于提高查找效率,可以比作字典.可以简单理解为排好序的快速查找的数据结构.2.索引的作用:便于查询和排序(所以添 ...

  3. MySQL中事物的详解

    1. 事物的定义及特性 事务是一组操作数据库的SQL语句组成的工作单元,该工作单元中所有操作要么同时成功,要么同时失败.事物有如下四个特性,ACID简称“酸性”. 1)原子性:工作单元中所有的操作要么 ...

  4. Mysql中timestamp用法详解

    前言:时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的. 完整的. 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间.使用数字签名技术产生的数据, 签名的对象包括了 ...

  5. Python3.7.1学习(七)mysql中pymysql模块详解(一)

    pymysql是纯用Python操作MySQL的模块,其使用方法和MySQLdb几乎相同.此次介绍mysql以及在python中如何用pymysql操作数据库, 以及在mysql中存储过程, 触发器以 ...

  6. Mysql中的Join详解

    一.Simple Nested-Loop Join(简单的嵌套循环连接) 简单来说嵌套循环连接算法就是一个双层for 循环 ,通过循环外层表的行数据,逐个与内层表的所有行数据进行比较来获取结果,当执行 ...

  7. Mysql中的delimiter详解

    初学mysql时,可能不太明白delimiter的真正用途,delimiter在mysql很多地方出现,比如存储过程.触发器.函数等. 学过oracle的人,再来学mysql就会感到很奇怪,百思不得其 ...

  8. MySQL中EXPLAIN命令详解

    explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: 如: expla ...

  9. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

随机推荐

  1. 【转】js生成接口请求参数签名加密

    js生成接口请求参数签名加密 签名算法规则: 第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=v ...

  2. 从tcp的角度看,打开一个网页到底发生了什么

    使用wireshark进行抓包分析:新建表达式过滤器,选择协议,字段,匹配方式,应用就能筛选出想要的数据包. 一个示例:(tcp.srcport == 1523 or tcp.dstport == 1 ...

  3. listener.ora和tnsnames.ora格式解析

    listener.ora是oracle数据库服务端的监听配置文件,包括协议.IP地址和端口等内容:tnsnames.ora是oracle数据库客户端的连接配置文件,也是对应的协议.IP地址和端口等内容 ...

  4. CentOS最小安装无法使用ifconfig命令

    问题描述: 1.先解决联网问题,详情查看:http://www.cnblogs.com/zhi-leaf/p/5983470.html. 2.执行net-tools,执行命令 yum install ...

  5. HDU 1005 Number Sequence(数论)

    HDU 1005 Number Sequence(数论) Problem Description: A number sequence is defined as follows:f(1) = 1, ...

  6. 【Java算法】获得一个随机字符串

    package suanfa; import java.util.Random; public class RandomStr { public static String getRandomStr( ...

  7. 熔断监控集群(Turbine)

    Spring Cloud Turbine 上一章我们集成了Hystrix Dashboard,使用Hystrix Dashboard可以看到单个应用内的服务信息,显然这是不够的,我们还需要一个工具能让 ...

  8. centos6.5+python2.7+flask+apache+mod-wsgi部署

    flask部署,使用的是centos6.5,python2.7,版本很重要.基本步骤如下: 一.创建虚拟环境,创建目录把项目拷进去 二.安装mod-wsgi和apache easy_install m ...

  9. windows7环境下java jdk的配置

    第一步: 肯定是先下载好java jdk啦~~ 网址在这里:http://www.oracle.com/technetwork/java/javase/downloads/index.html 打开这 ...

  10. linux 删除日志

    https://jingyan.baidu.com/album/c1a3101e73129ade656deb9d.html?picindex=2 里面的 ls -s 可以看到目录 https://zh ...