下文给大家带来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视图知识,大家觉得是自己想要的吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。