使用SELECT创建MYSQL视图*

使用SELECT创建MYSQL视图*,mysql,sql,select,views,wildcard,Mysql,Sql,Select,Views,Wildcard,在MYSQL中创建视图 如果我写SELECT*FROM。。。作为一个视图,该视图会将其永久存储为*还是实际选择当前列并将查询存储为中的列,而不是存储SELECT*它将存储SELECT foo、bar、biz等 我已经读过多次使用SELECT*FROM。。。由于各种原因,包括上述原因和其他原因,这是一种不好的做法。因此,我确实希望避免这些问题。在MySQL中创建存储视图可能会带来意想不到的性能后果。仔细考虑是否创建存储视图是问题的适当解决方案。或者创建一个视图是否可能会产生一个比它要解决的问题更大

在MYSQL中创建视图

如果我写SELECT*FROM。。。作为一个视图,该视图会将其永久存储为*还是实际选择当前列并将查询存储为中的列,而不是存储SELECT*它将存储SELECT foo、bar、biz等


我已经读过多次使用SELECT*FROM。。。由于各种原因,包括上述原因和其他原因,这是一种不好的做法。因此,我确实希望避免这些问题。

在MySQL中创建存储视图可能会带来意想不到的性能后果。仔细考虑是否创建存储视图是问题的适当解决方案。或者创建一个视图是否可能会产生一个比它要解决的问题更大的问题

您提出的问题可以通过一个简单的测试用例来回答,假设test.foo表存在

 USE test ; 

 CREATE VIEW voo AS SELECT * FROM foo ;

 SHOW CREATE VIEW voo ; 

 DROP VIEW voo ;

谢谢你的回答,我不知道有一个视图这样的东西没有存储,这可能会让我重写我的问题。存储视图是否不同于仅在phpmyadmin中创建视图?例如,与内联视图相反的存储视图。在MySQL术语中,内联视图被称为派生表,例如SELECT*FROM SELECT*FROM foo voo。参数之间的位有一个内联视图,分配了一个别名voo。我们可以创建一个存储视图定义,如答案中的示例所示,然后选择*FROM voo,以解决相同的净效果和性能问题。区别在于,在一个查询中,voo的定义内联存在于查询中,并且仅在该上下文中可用。存储视图在其他上下文中可用。