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入门学习之十:视图的基本操作

一、视图的基本介绍  www.2cto.com           视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。         使用视图需要MySQL5及以后的版本...

MYSQL入门学习之十:视图的基本操作

 一、视图的基本介绍         视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。         使用视图需要MySQL5及以后的版本支持。     ...

阅读《Android 从入门到精通》(5)——文本框视图

文本框视图(TextView)   TextView 类方法   示例代码

MySQL入门很简单-学习笔记 - 第 5 章 操作数据库

假设已经登录 mysql-h localhost -uroot -proot   5.1、显示、创建、删除数据库 showdatabases;     显示所有的数据库 createdatabase ...

学习大数据第八天:MySQL5的入门操作

MySQL5的入门操作   首先打开cmd,win7要以管理员身份运行哦~   1.连接MySQL数据库 mysql -uroot –p****(这是自己的MySQL密码,在安装时要设置的东西,详见上...

opencv从入门到精通(5)——矩阵和图像操作函数列表

这里将实用的函数列出方便大家查阅,简要说明函数的用法和参数含义,并举一些列子。cvAbs void cvAbs(const CvArr* src,CvArr* dst):计算数组src中所有元素的绝对...

(MySQL入门到精通操作手册

  • 2017-03-20 15:22
  • 1.57MB
  • 下载

Mysql入门到精通之数据表的操作

修改表 ALTER TABLE tb_name; 1.添加字段 ALTER TABLE tb_name ADD 字段名字 字段类型 约束条件 [FIRST/AFTER 字段名称] 1>添...

MySQL从入门到精通_4索引的操作

1. 为什么使用索引数据库对象索引其实与书的目录非常相似,主要是为了提高从表中检索数据的速度。由于数据存储在数据库表中,所以索引是创建在数据库表对象上的,由表中的一个字段或多个字段生成的键组成,这些键...

MySQL从入门到精通_6触发器的操作

6-触发器的操作 在MySQL数据库中,数据库对象表时存储和操作数据的逻辑结构,而触发器则用来实现由一些表事件触发的某个操作,时与数据库对象表关联最紧密的数据库对象之一,在数据库系统中,当执行表...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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