【第22期】观点:IT 行业加班,到底有没有价值?

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学习笔记(1)视图操作

为什么使用视图 视图是绝大部分数据库开发中都会使用的概念。使用视图大致有两个方面的原因。   封装查询     数据库虽然可以存储海量数据,但是在数据表设计上却不可能为每种关系创建数据表。例如,对于...

MYSQL视图的学习笔记

视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚拟存在的表。视图就像一个窗口(数据展示的窗口),通过这个窗口,可以看到系统专门提供的数据(也可以...

MySQL视图操作命令详解

创建视图 在MySQL中,创建视图的完整语法如下: CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] ...

Mysql视图操作和存储过程

1.MySQL 视图的操作是在新版本数据库才支持的,视图操作的好处是可以简化数据库的查询,特别是一些经常查询的数据表我们可以先创建一个视图,以后要在查询这个类式 的数据表时候,就可以直接查询该视图。这...

MySql视图原理讲解与使用大全

摘要:本文主要讲了MySql中视图的定义、原理和如何使用、创建、删除等 一. 视图概述 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在...

mysql视图详解

一、什么是视图 视图是一个从一张或几张数据表或视图中导出的虚拟表,它的作用类似于对数据表进行筛选,必须使用SQL语句中的SELECT语句实现构成。在定义视图时,只是把视图的定义存放在数据库,并不保存视...

Mysql视图使用总结

视图可以看作为“虚拟表”,因为它返回的结果集格式与实体数据表返回的数据集格式类似,并且引用视图的方式与引用数据表的方式相同。每次查询使用视图时,DBMS会动态生成视图结果集所需要的逻辑合并到从基表数据...

mysql视图使用总结

一、什么是视图         视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行...

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

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

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

http://product.dangdang.com/23721483.html 第1章  初识MySQL 1.1  数据库基础 1.1.1  什么是数据库 1.1.2  表 1.1.3 ...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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