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. ios socket(基础demo)

    http://blog.sina.com.cn/s/blog_7a2f0a830101ecv4.html clinetSocket 1.viewcontroller.h @interface View ...

  2. 从零开始写一个武侠冒险游戏-7-用GPU提升性能(2)

    从零开始写一个武侠冒险游戏-7-用GPU提升性能(2) ----把地图处理放在GPU上 作者:FreeBlues 修订记录 2016.06.21 初稿完成. 2016.08.06 增加对 XCode ...

  3. Nmap备忘单:从探索到漏洞利用(Part 2)

    这是我们的第二期NMAP备忘单(第一期在此).基本上,我们将讨论一些高级NMAP扫描的技术,我们将进行一个中间人攻击(MITM).现在,游戏开始了. TCP SYN扫描 SYN扫描是默认的且最流行的扫 ...

  4. poj1789 Truck History

    Truck History Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 20768   Accepted: 8045 De ...

  5. SphinxSE的安装

    SphinxSE 的使用 SphinxSE 的使用 :wiki SphinxSE是一个可以编译进MySQL 5.x版本的MySQL存储引擎,尽管被称作“存储引擎”,SphinxSE自身其实并不存储任何 ...

  6. 完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  7. 【转】基于LDA的Topic Model变形

    转载自wentingtu 基于LDA的Topic Model变形最近几年来,随着LDA的产生和发展,涌现出了一批搞Topic Model的牛人.我主要关注了下面这位大牛和他的学生:David M. B ...

  8. 查看别人的css

    ie工具栏的“文件”选项选“另存为”到你本地电脑,存下来有两个文件 一个是空间名称命名的文件夹和html网页,文件加里有三个扩展名为.css的文件

  9. django LDAP

    > http://goodosoft.github.io/2015/02/25/Using-AD-as-authentication-for-Django/ > http://my.osc ...

  10. HTTP认证相关

    Java HTTPBasicAuth http://blog.csdn.net/kkdelta/article/details/28419625Python HTTPBasicAuth http:// ...