• 技术文章 >数据库 >mysql教程

    mysql视图有空间吗?

    青灯夜游青灯夜游2020-10-14 16:08:45原创39

    mysql视图没有空间。MySQL视图是一种虚拟存在的表,并不实际存在于数据库中,不分配空间。MySQL数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。

    (推荐教程:mysql视频教程

    MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。

    数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。因此,视图中的数据是依赖于真实表中的数据的。一旦真实表中的数据发生改变,显示在视图中的数据也会发生改变。

    视图可以从原有的表上选取对用户有用的信息,那些对用户没用,或者用户没有权限了解的信息,都可以直接屏蔽掉,作用类似于筛选。这样做既使应用简单化,也保证了系统的安全。

    例如,下面的数据库中有一张公司部门表 department。表中包括部门号(d_id)、部门名称(d_name)、功能(function)和办公地址(address)。department 表的结构如下:

    mysql> DESC department;
    +----------+-------------+------+-----+---------+-------+
    | Field    | Type        | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | d_id     | int(4)      | NO   | PRI | NULL    |       |
    | d_name   | varchar(20) | NO   | UNI    | NULL    |       |
    | function | varchar(50) | YES  |     | NULL    |       |
    | address  | varchar(50) | YES  |     | NULL    |       |
    +----------+-------------+------+-----+---------+-------+
    4 rows in set (0.02 sec)

    还有一张员工表 worker。表中包含了员工的工作号(num)、部门号(d_id)、姓名(name)、性别(sex)、出生日期(birthday)和家庭住址(homeaddress)。worker 表的结构如下:

    mysql> DESC worker;
    +-------------+-------------+------+-----+---------+-------+
    | Field       | Type        | Null | Key | Default | Extra |
    +-------------+-------------+------+-----+---------+-------+
    | num         | int(10)     | NO   | PRI | NULL    |       |
    | d_id        | int(4)      | YES  |MUL     | NULL    |       |
    | name        | varchar(20) | NO   |     | NULL    |       |
    | sex         | varchar(4)  | NO   |     | NULL    |       |
    | birthday    | datetime    | YES  |     | NULL    |       |
    | homeaddress | varchar(50) | YES  |     | NULL    |       |
    +-------------+-------------+------+-----+---------+-------+
    6 rows in set (0.01 sec)

    由于各部门领导的权力范围不同,因此,各部门的领导只能看到该部门的员工信息;而且,领导可能不关心员工的生日和家庭住址。为了达到这个目的,可以为各部门的领导建立一个视图,通过该视图,领导只能看到本部门员工的指定信息。

    例如,为生产部门建立一个名为 product _view 的视图。通过视图 product_ view,生产部门的领导只能看到生产部门员工的工作号、姓名和性别等信息。这些 department 表的信息和 worker 表的信息依然存在于各自的表中,而视图 product_view 中不保存任何数据信息。当 department 表和 worker 表的信息发生改变时,视图 product_view 显示的信息也会发生相应的变化。

    技巧:如果经常需要从多个表查询指定字段的数据,可以在这些表上建立一个视图,通过这个视图显示这些字段的数据。

    MySQL 的视图不支持输入参数的功能,因此交互性上还有欠缺。但对于变化不是很大的操作,使用视图可以很大程度上简化用户的操作。

    视图并不同于数据表,它们的区别在于以下几点:

    以上就是mysql视图有空间吗?的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:mysql 视图
    上一篇:mysql怎样查看当前连接数 下一篇:mysql怎么删除表中的某一字段
    第13期线上培训班

    相关文章推荐

    • mysql表中怎么修改字段?• mysql怎么建立外键约束• mysql无法创建视图怎么办• mysql中如何获取当前日期?日期函数有哪些?• linux下mysql怎么删除用户权限?• mysql如何找回误删除数据

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网