千家信息网

关于mysql视图知识的简单整理

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,下文给大家带来mysql视图知识有关内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完mysql视图知识你一定会有所收获。视图概念:视图是指计算机数据库中的虚
千家信息网最后更新 2024年11月23日关于mysql视图知识的简单整理

下文给大家带来mysql视图知识有关内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完mysql视图知识你一定会有所收获。

视图概念:

视图是指计算机数据库中的虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。详见 视图 百度百科,其对视图的分类和优点有详细的解释此处不再赘述。

视图创建:

create view view_name as select 列1,列2, ...... from 表名
我们可以把视图理解为一个预先定义好的子查询,比如上面的语句中,如果我们把create 换成select那就相当好理解了。
select * from select col_1,col_2 from tbl_1 as temp
而事实上,视图的工作原理与这种子查询产生的临时表是一样的,只有在用到视图的时候,才会根据原表去动态生成虚拟表。所以视图的数据会根据原表的数据变动而变动。

举例

`create table employee (
id int primary key auto_increment,
name varchar(20) not null,
salary decimal(10,2) not null default 1000
);

create view v_emp as select id,name from employee;`
mysql> desc v_emp;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | 0 | |
| name | varchar(20) | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
可以看到我们创建的视图v_emp,成功的隐藏了员工的工资字段salary

视图管理

删除视图

drop view [if exists] view_name

修改视图

alter view v_view_name as select * from tbl_1

修改视图结构

alter view v_view_name (col_1,col_2...) as select a,b from tbl_1
这样不但可以对外隐藏表名还可以隐藏字段名。

注意

视图对查询操作支持的最好,对增删改有一定的限制,比如多表联合组成的视图,而由单个表创建出的视图在插入数据时,视图中未包含的原表中的字段或者有默认值,或者允许为空。这样才可以保证操作成功。

对于上文关于mysql视图知识,大家觉得是自己想要的吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。

0