关于mysql视图的问题。见补充

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql视图的问题。见补充相关的知识,希望对你有一定的参考价值。

有两个表,字段相同,table1有字段id,name,table2有字段id,name。现在想创建一个视图 view_ 有字段id,name。view_ 包含table1,table2的内容,怎么实现(id可能重复)。并按id排序。如图 ,,,另外 是不是 我表中的内容更改了 视图中的内容也自动更改?

这个可以啊,就是创建一个联合视图,使用union all 就可以包含重复的id了。
视图是存储的sql脚本,并没有存储具体的数据,具体数据还是存储在脚本所引用的表中了(例如你提到的表1和表2)。视图只是从表1和表2中提取数据,所以,当表中的内容更改了,实体中的内容也就更改了(因为数据是来源表)。
其实就是相当于我们带着眼镜(视图)看世界(表),世界(表)内容变了,眼镜(视图)中看到的自然也就变了。
希望能有帮助,^_^ 。
参考技术A create view view_ as
select id,name from table1
union
select id,name form table2

视图不实际存储数据,在数据库中只是存储着你的视图语法,

所以 “表中的内容更改了 视图中的内容也自动更改”追问

谢谢啦~ 那么 我现在已经创建了视图 现在多了一个表3 怎么修改视图 添加表三呢 要是去掉表二呢 求语句

追答

drop view 视图;

然后 重新创建就可以了。

追问

不可以啊 视图里放了很多很多的表啊 怎么更新视图啊? 添加 删除表

追答

删除视图啊,指定视图名,就删除一个视图啊

然后重建视图

比如
drop view view_1

加入表3
create view view_1 as
select id,name from table1
union
select id,name form table2
union
select id,name form table3

或者加入表3,去掉表2
create view view_1 as
select id,name from table1
union
select id,name form table3

参考技术B CREATE VIEW 视图名字 AS
SELECT id, name FROM table1
UNION ALL
SELECT id, name FROM table2;

表中的内容更改了 视图中的内容也自动更改
没错。 就是这样的。追问

谢谢啦~ 那么 我现在已经创建了视图 现在多了一个表3 怎么修改视图 添加表三呢 要是去掉表二呢 求语句

追答

现在多了一个表3 怎么修改视图
添加表三

DROP VIEW 视图名字;

CREATE VIEW 视图名字 AS
SELECT id, name FROM table1
UNION ALL
SELECT id, name FROM table2
UNION ALL
SELECT id, name FROM table3;

要是去掉表二
DROP VIEW 视图名字;

CREATE VIEW 视图名字 AS
SELECT id, name FROM table1
UNION ALL
SELECT id, name FROM table3;

因为 视图本身不包含数据, 因此可以采用 先删除, 再创建的方式来处理.
(注意: 这里删除的是 视图. 不要删除错了. 不是 删除表 )

本回答被提问者采纳

以上是关于关于mysql视图的问题。见补充的主要内容,如果未能解决你的问题,请参考以下文章

关于用DW制作网页背景的基础问题,见问题补充,俺新手,谢谢哈

mysql-补充

mysql补充

mysql补充

Python Day48 mysql补充

mysql--补充(视图,触发器,事务,存储过程,函数)