MySQL中的视图详解
一.什么是视图?
简单来说,视图就是从一张表中导出的虚拟表。视图拥有表的结构,但是在数据库中只有视图的定义,但是没有视图中的数据。
视图是由查询语句从一张表中导出来的数据,不是一张实际的表。
二.视图的作用
最大的用处就是将程序与表隔离开来,增加了安全性和简单性。
三.创建视图
创建视图是指在已有的表上创建视图,你可以在一张表上创建视图,你也可以在多张表上创建视图。
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中的视图详解的更多相关文章
- MySQL系列详解三:MySQL中各类日志详解-技术流ken
前言 日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 .下面分别对他们进行介绍. 查询日志 1.查看查询日志变 ...
- Mysql中explain作用详解
一.MYSQL的索引 1.索引(Index):帮助Mysql高效获取数据的一种数据结构.用于提高查找效率,可以比作字典.可以简单理解为排好序的快速查找的数据结构.2.索引的作用:便于查询和排序(所以添 ...
- MySQL中事物的详解
1. 事物的定义及特性 事务是一组操作数据库的SQL语句组成的工作单元,该工作单元中所有操作要么同时成功,要么同时失败.事物有如下四个特性,ACID简称“酸性”. 1)原子性:工作单元中所有的操作要么 ...
- Mysql中timestamp用法详解
前言:时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的. 完整的. 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间.使用数字签名技术产生的数据, 签名的对象包括了 ...
- Python3.7.1学习(七)mysql中pymysql模块详解(一)
pymysql是纯用Python操作MySQL的模块,其使用方法和MySQLdb几乎相同.此次介绍mysql以及在python中如何用pymysql操作数据库, 以及在mysql中存储过程, 触发器以 ...
- Mysql中的Join详解
一.Simple Nested-Loop Join(简单的嵌套循环连接) 简单来说嵌套循环连接算法就是一个双层for 循环 ,通过循环外层表的行数据,逐个与内层表的所有行数据进行比较来获取结果,当执行 ...
- Mysql中的delimiter详解
初学mysql时,可能不太明白delimiter的真正用途,delimiter在mysql很多地方出现,比如存储过程.触发器.函数等. 学过oracle的人,再来学mysql就会感到很奇怪,百思不得其 ...
- MySQL中EXPLAIN命令详解
explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: 如: expla ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
随机推荐
- [CodeForces - 447B] B - DZY Loves Strings
B - DZY Loves Strings DZY loves collecting special strings which only contain lowercase letters. For ...
- img 标签
设计网页时经常使用的图片有三种,它们的相同点是都经过了压缩,压缩比越高,图像品质越差. GIF(Graphics Interchange Format):最多支持256色,支持透明,支持多帧动画显示效 ...
- ftp主动模式与被动模式交互过程分析
1.相关介绍 1.1主动模式和被动模式 主动模式:服务端通过指定的数据传输端口(默认20),主动连接客户端提交的端口,向客户端发送数据. 被动模式:服务端采用客户端建议使用被动模式,开启数据传输端口的 ...
- Linux查看用户属于哪些组/查看用户组下有哪些用户
一.关于/etc/group格式的讨论 在说/etc/group格式的时候,网上很多文章都会说是“组名:组密码:组ID:组下用户列表”,这说法对了解/etc/group格式是没问题的,但如果碰到“查看 ...
- [转]每天一个linux命令(44):top命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来不断刷新 ...
- 异步socket处理
服务器端: #include <boost/thread.hpp> #include <boost/asio.hpp> #include <boost/date_time ...
- mac 安装Seaslog扩展及SeasLogger应用
首先下载 http://pecl.php.net/package/SeasLog 下载最新解压 cd /SeasLog-2.0.2/SeasLog-2.0.2/ phpize ./configure ...
- ubuntu16.10 安装ibus中文输入法
安装以下几种常用输入法: IBus拼音:sudo apt-get install ibus-pinyin IBUS五笔:sudo apt-get install ibus-table-wubi 谷歌拼 ...
- 1-2Controller之Session
laravel5.5版本. 视频教程是慕课网中的:轻松学会Laravel-表单篇 1-2 /*session简介: 1.由于HTTP协议是无状态(Stateless)的,所以session提供一种保存 ...
- sql2008r2安装失败的解决办法
setup fails with: '.', hexadecimal value 0x00, is an invalid character.SQL 2012 Setup issues - hexad ...