mysql视图有空间吗?
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 的视图不支撑输入参数的功效,因此交互性上还有欠缺。但关于转变不是很大的操纵,使用视图可以很大程度上简化会员的操纵。
视图并不一样于数据表,它们的不同在于以下几点:
视图不是数据库中真实的表,而是一张虚拟表,其构造和数据是创立在对数据中真实表的查询根基上的。
储备在数据库中的查询操纵 SQL 语句定义了视图的内容,列数据和行数据来自于视图查询所援用的实际表,援用视图时动态生成这些数据。
视图没有实际的物理记载,不是以数据集的情势储备在数据库中的,它所对应的数据实际上是储备在视图所援用的真实表中的。
视图是数据的窗口,而表是内容。表是实际数据的存置单位,而视图只是以不一样的显示方式展现数据,其数据来源还是实际表。
视图是查看数据表的一种办法,可以查询数据表中某些字段构成的数据,只是一些 SQL 语句的汇合。从平安的角度来看,视图的数据平安性更高,使用视图的会员不接触数据表,不知道表构造。
视图的创立和删除只影响视图本身,不影响对应的根本表。
以上就是mysql视图有空间吗?的具体内容,更多请关注百分百源码网其它相关文章!