1. 为什么要使用视图?

为了提高复杂SQL语句的复用性和表操作的安全性,MySQL数据库管理系统提供了视图特性。所谓视图,本质上是一种虚拟表,在物理上是不存在的,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以储存的数据值形式存在。行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。

视图使开发者只关心感兴趣的某些特定数据和所负责的特定任务,只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了数据库中数据的安全性。

视图的特点如下:

(1). 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。

(2). 视图是由基本表(实表)产生的表(虚表)。

(3). 视图的建立和删除不影响基本表。

(4). 对视图内容的更新(添加,删除和修改)直接影响基本表。

(5). 当视图来自多个基本表时,不允许添加和删除数据。

视图的操作包括创建视图,查看视图,删除视图和修改视图。

2. 创建视图

CREATE VIEW view_name AS 查询语句;

实例如下:

CREATE VIEW view_name AS SELECT * FROM t_dept;

3. 查看视图

3.1. SHOW TABLES语句查看视图名

aaarticlea/png;base64,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" alt="" />

SHOW TABLES不仅会显示表的名字,同时也会显示视图的名字。

3.2. SHOW TABLE STATUS语句查看视图详细信息

SHOW TABLE STATUS FROM 【from db_name】【LIKE 'pattern'】

SHOW TABLE STATUS不仅会显示表的详细信息,同时也会显示视图的详细信息。

3.3. SHOW CREATE VIEW语句查看视图定义信息

SHOW CREATE VIEW view_dept

3.4 DESCRIBE | DESC语句查看视图设计信息

DESCRIBE | DESC viewname

3.5 通过系统表查看视图信息

当Mysql数据库安装成功后,会自动创建系统数据库information_schema。在该数据库中存在一个包含视图信息的表格views,可以通过查看表格views来查看所有视图的相关信息。

4. 删除视图

DROP VIEW view_name 【,view_name】;DROP VIEW

通过DROP VIEW语句可以一次删除一个或多个视图。

实例:

DROP VIEW view_dept;

5. 修改视图

5.1 CREATE OR REPLACE VIEW语句修改视图

CREATE OR REPLACE VIEW view_name AS 查询语句;

5.2 ALTER语句修改视图

ALTER VIEW viewname AS 查询语句;

6. 利用视图操作基本表

6.1 检索(查询)数据

SELECT * FROM view_name;

6.2 利用视图操作基本表数据

由于视图是"虚表",所以对视图数据进行的更新操作,实际上是对其基本表数据进行更新操作。在具体更新视图数据时,需要注意以下两点:

(1). 对视图数据进行添加,删除,更新操作直接影响基本表。

(2). 当视图来自多个基本表时,不允许添加和删除数据。

添加数据操作:

和向表里添加数据相同。

删除数据操作:

和向表里删除数据相同。

更新数据操作:

和向表里更新数据相同。

mysql之对视图的操作的更多相关文章

  1. Mysql之视图的操作

    视图的操作: 1.视图的创建: create view view_name as 查询语句; 2.视图的查看: show tables;// 显示所有的表和视图 show create view vi ...

  2. Mysql中的视图

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

  3. MySQL基础之 视图

    视图 视图就是从一个表或多个表导出来的一张虚拟的表.通过这个窗口可以看到系统专门提供的数据,方便用户操作的同时增加了安全性. 视图的特点: 1.视图的列可以来自于不同的表. 2.视图是由实际存在的表创 ...

  4. MySQL数据库之视图

    1 引言 为了简化复杂SQL语句编写,以及提高数据库安全性,MySQL数据库视图特性.视图是一张虚拟表,不在数据库中以储存的数据值形式存在.在开发中,开发者往往只对某些特定数据和所负责的特定任务感兴趣 ...

  5. MySQL进阶(视图)---py全栈

    目录 mysql进阶(视图)---py全栈 一.什么是视图? 二.视图的特性 三.视图的优点 四.使用场合 五.视图基本操作 六.案例 mysql进阶(视图)---py全栈 一.什么是视图? 视图是从 ...

  6. Mysql学习笔记—视图

    1.什么是视图 视图(View)是一种虚拟存在的表.其内容与真实的表相似,包含一系列带有名称的列和行数据.但是视图并不在数据库中以存储的数据的形式存在.行和列的数据来自定义视图时查询所引用的基本表,并 ...

  7. Mysql基础知识--视图

    一.视图的操作 为了提高SQL语句的复用性和操作表的安全性,,MySQL数据库管理系统5提供了视图特性. 视图:本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的行和列数据.但是视图并不在 ...

  8. 【简说Python WEB】视图函数操作数据库

    目录 [简说Python WEB]视图函数操作数据库 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6.9 ...

  9. (八)MySQL事务、视图、变量、存储过程、函数、流程控制结构

    补充:增删查改语句在数据库中基本通用,但这篇博客的内容基本是MySQL区别于其它数据库管理系统的知识,也要认真学习. 一.事务 1.含义:在MySQL中,可以通过创建事务来解决一些问题. 2.语法: ...

随机推荐

  1. codeforces 258div2 A Game With Sticks(DP)

    题目链接:http://codeforces.com/contest/451/problem/A 解题报告:有n跟红色的棍子横着放,m根蓝色的棍子竖着放,它们形成n*m个交点,两个人轮流在里面选择交点 ...

  2. Aptana插件安装到eclipse和myeclipse的详细过程

    刚开始学习Jquery,为了搭建好的环境是很重要的,所以我尝试了很多方式,下面之一. 一.要下载好Aptana 插件 官网: http://update1.aptana.org/studio/3.2/ ...

  3. HDU 1069&&HDU 1087 (DP 最长序列之和)

    H - Super Jumping! Jumping! Jumping! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format: ...

  4. CF#310 d2

    A:|c[1]-c[0]| B:A+-(oc)A[0]==0..n-1 C: #include <cstdio> int n,m,i,j,k,p; int ll,ca,cb,cc; int ...

  5. ASP.NET MVC 入门系列教程

    ASP.NET MVC 入门系列教程 博客园ASP.NET MVC 技术专题 http://kb.cnblogs.com/zt/mvc/ 一个居于ASP.NET MVC Beta的系列入门文章,有朋友 ...

  6. 【leetcode】Best Time to Buy and Sell Stock II

    Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price of a ...

  7. 在windows下用cygwin和eclipse搭建cocos2dx(2.1.4)的android开发环

    一.准备工作 需要下载和安装以下内容,请根据自己的操作系统选择x86和x64(我的是64位win7,我就拿64位说事) 1.jdk-7u25-windows-x64.exe(下载完后直接安装,一直下一 ...

  8. Android studio 添加依赖

    以前添加依赖总是到github上下载源码,再添加源码到module的依赖当中,其实在studio中,应该使用maven库. 比如在github上看到了sliding-menu这个项目,就应该到mave ...

  9. BestCoder17 1001.Chessboard(hdu 5100) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5100 题目意思:有一个 n * n 的棋盘,需要用 k * 1 的瓷砖去覆盖,问最大覆盖面积是多少. ...

  10. 【python】pathlib库

    pathlib在python3.2以上开始默认支持,在python2.7中如果要使用需要安装 pip install pathlib pathlib更多参考资料:http://pathlib.read ...