MySQL从入门到精通_5视图的操作

原创 2016年08月30日 23:02:57
    1 为什么使用视图
数据库中关于数据的查询有时候非常复杂,例如表连接、子查询等,这种查询会让程序员感到非常痛苦,应为它逻辑太复杂、编写语句比较多。当这种查询需要重复使用时,则不会次次都能编写正确,从而降低了数据库的实用性。在具体操作表之前,有时候要求只能操作部分字段,而不是全部字段。例如
在公司员工的工资一般是保密的,如果因为程序员一时疏忽向查询中写入了关于“工资”的字符按,则会让员工的“工资”显示给所有能够查看该查询的人,这是就需要限制程序员操作的字段。

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

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

视图的特点如下

  • 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系
  • 视图是由基本表(实表)产生的表(虚表)
  • 视图的建立和删除不影响基本表
  • 对视图内容的更新(添加、删除和修改)直接影响基本表
  • 当视图来自多个基表时,不允许添加和删除数据
    2 创建视图
2.1 创建视图的语法形式
这里写图片描述

和创建表一样,视图名不能和表名,也不能和其他的视图名重名。根据上述语法可以发现,视图的功能实际上就是封装了复杂的查询语句。

注意:在SQL语句命名规范中,视图一般以view_xxx或者v_xxx的样式来命名

2.2 创建各种视图

id name sex group_id
1 cjgong1 M 1
2 cjgong2 M 1
3 cjgong3 M 2
4 cjgong4 W 2
5 cjgong5 W 2
6 cjgong6 W 2
7 cjgong7 M 3
8 cjgong8 W 3
9 cjgong9 W 4
学生表信息(t_student)
id name
1 group_1
2 group_2
3 group_3
4 group_4
5 group_5
组表信息
CREATE VIEW view_test1
    AS
        SELECT 3.1415926

这里写图片描述


CREATE VIEW view_test2
    AS
        SELECT COUNT(name)
            FROM t_student;

这里写图片描述


CREATE VIEW view_test3
    AS
        SELECT name
            FROM t_student
                ORDER BY id DESC;

这里写图片描述


CREATE VIEW view_test4
    AS
        SELECT s.name
            FROM t_student AS s, t_gruop AS g
                WHERE s.group_id = g.id AND g.id = 2;

这里写图片描述


CREATE VIEW view_test5
    AS
        SELECT s.name
            FROM t_student AS s LEFT JOIN t_group AS g ON s.group_id = g.id
                WHERE g.id = 2;

这里写图片描述


CREATE VIEW view_test6
    AS
        SELECT s.name
            FROM t_student AS s 
                WHERE s.group_id IN(SELECT id FROM t_group);

这里写图片描述


CREATE VIEW view_test7
    AS
        SELECT id,name FROM t_student
        UNION ALL
        SELECT id,name FROM t_group;

这里写图片描述

    3 查看视图
3.1 SHOW TABLES 语句查看视图名

3.2 SHOW TABLE STATUS [FROM] [LIKE] 语句查看视图详细信息
这里写图片描述

3.3 SHOW CREATE VIEW 语句查看实体定义信息

3.4 DESCRIBE | DESC| 语句查看实体设计信息

    4删除视图
4.1 删除视图的语句形式
这里写图片描述

在上述语句中,view_name参数表示所要删除视图的名称

    5修改视图
对于已经创建好的表,尤其是已经有大量数据的表,通过先删除,然后再按照新的表定义重建表的方式来修改表时,需要做许多额外的工作,例如数据的重载等。可以对于视图来说,由于其实“虚表”,并没有存储数据,所以完全可以通过该方式来修改视图。

5.1如果每次修改视图,都是先删除视图,然后再次创建一个同名的视图,则显得非常麻烦。于是,MySQL为了便于用户修改视图,提供了可以实现替换的创建视图语法。
这里写图片描述

5.2 ALTER语句修改视图
这里写图片描述

    6利用视图操作基本表
在MySQL中可以通过视图检索基本表数据,这是视图最进本的应用,除此之外还可以视图修改基本表中的数据。

6.1 检索(查询)数据
通过视图查询数据,与通过表进行查询完全相同,只不过通过视图查询比表更安全、更简单、使用。只要把表名换成视图名即可

6.2 利用视图操作基本表数据
我们不仅可以对视图进查询数据,而且还可以对视图进行更新(增加、删除和更新)数据操作,由于视图时“虚表”,所以对视图数据进行更新操作,实际上是对基本表表数据进行更新操作。在具体更新视图数据时,需要注意一下两点

  • 对视图数据进行添加,删除和更新操作直接影响基本表。
  • 视图来自多个基本表时,不允许添加和删除数据。
版权声明:本文为博主原创文章,未经博主允许不得转载。

MySql从入门到精通

一:数据库相关 创建数据库:create database databaseName create database CRM ----创建一个名为CRM的数据库。 查看数据库:sho...
  • JustDoC
  • JustDoC
  • 2017年02月22日 10:32
  • 1198

mysql从入门到精通

入门基础篇深入篇mysql数据库实现多表查询在sql语言中,用join实现表与表的关联,用on指定联合表的查询条件,如:#实现三表联查,可以用table1.*,table2.*来排列表格显示信息的先后...
  • EndisenChen
  • EndisenChen
  • 2017年03月17日 19:24
  • 358

MySQL数据库应用-从入门到精通配套视频、PPT、安装包与教程

MySQL数据库应用-从入门到精通配套视频、PPT、安装包与教程
  • Leonard_Kongtanhuo
  • Leonard_Kongtanhuo
  • 2017年09月20日 16:19
  • 432

《Android5从入门到精通》

Android系统是目前最为流行的智能手机操作系统。为了帮助开发人员快速掌握 Android开发技术,获取更好的就业机会,作者基于 Android SDK 5.1(API Level 22)编写了本书...
  • brucexia
  • brucexia
  • 2016年05月21日 21:07
  • 1369

《MySQL 5.7从入门到精通(视频教学版)》

本书主要包括MySQL的安装与配置、数据库的创建、数据表的创建、数据类型和运算符、MySQL函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份...
  • brucexia
  • brucexia
  • 2016年12月19日 13:58
  • 11444

MyBatis从入门到精通__刘增辉(著)_ 电子工业出版社.pdf 免费下载

下载地址: MyBatis从入门到精通__刘增辉(著)_ 电子工业出版社.pdf
  • jiongyi1
  • jiongyi1
  • 2018年01月25日 19:57
  • 115

《MySQL从入门到精通(视频教学版)》目录

http://product.dangdang.com/23721483.html 第1章  初识MySQL 1.1  数据库基础 1.1.1  什么是数据库 1.1.2  表 1.1.3 ...
  • brucexia
  • brucexia
  • 2015年11月05日 17:57
  • 3747

《Android开发从入门到精通》扶松柏.扫描版.pdf

下载地址:网盘下载 内容简介 编辑 《Android开发从入门到精通》系统讲解了Android软件开发的基础知识,图文并茂地帮助读者学习和掌握SDK、开发流程以及...
  • cf406061841
  • cf406061841
  • 2017年05月13日 00:11
  • 1542

ORACLE从入门到精通 明日科技编著 清华大学出版社

http://pan.baidu.com/s/1gePoRAV
  • ggkmskj
  • ggkmskj
  • 2017年06月07日 17:04
  • 1147

SQL SERVER-2008从入门到精通pdf

下载地址:网盘下载 内容要点 编辑 SQL Server 2008是Windows Server的最新版本,它推出了许多新的特性和关键性的改进,是至今为止最强大和最全面的...
  • cf406061841
  • cf406061841
  • 2017年06月04日 23:24
  • 1097
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL从入门到精通_5视图的操作
举报原因:
原因补充:

(最多只允许输入30个字)