北京网站托管,王也天年龄,苏州谢谢网络公司,北京做网站的公司排行文章目录 创建视图修改视图删除视图通过视图更新数据1. 插入数据2. 更新数据3. 删除数据 查看视图信息1. DESCRIBE2. SHOW TABLE STATUS3. SHOW CREATE VIEW4. 在views表中查看 数据库中的视图是一个虚拟表。同真实的表一样#xff0c;视图包含一系列带有名称的列和行数据。行… 文章目录 创建视图修改视图删除视图通过视图更新数据1. 插入数据2. 更新数据3. 删除数据 查看视图信息1. DESCRIBE2. SHOW TABLE STATUS3. SHOW CREATE VIEW4. 在views表中查看 数据库中的视图是一个虚拟表。同真实的表一样视图包含一系列带有名称的列和行数据。行和列数据来自定义视图的查询所引用的表并且在引用视图时动态生成。 创建视图
创建视图的语法和创建表的语法基本是一样的格式如下
CREATE [OR REPLACE] [ALGORITHM{UNDEFINED|MERGE|TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED|LOCAL] CHECK OPTION];上述语句可能创建新的视图如果给定了OR REPLACE子句该语句还能替换已有的视图。select_statement是一种SELECT语句它给出了视图的定义它可以从基表或其他视图进行选择。
参数含义
ALGORITHM可选参数表示视图选择的算法。UNDEFINEDMySQL将自动选择要使用的算法。MERGE将视图的语句与视图定义合并起来使得视图定义的某一部分取代语句的对应部分。TEMPTABLE将视图的结果存入临时表然后使用临时表执行语句。WITH CHECK OPTION可选参数表示更新视图时要保证在视图的权限范围内。CASCADED更新视图时要满足所有相关视图和表的条件才进行更新。LOCAL更新视图时要满足该视图本身定义的条件即可更新。 创建视图语句要求具有针对视图的CREATE VIEW权限以及针对由SELECT语句选择的每一列上的某些权限。 对于在SELECT语句中其他地方使用的列必须具有SELECT权限。 如果有OR REPLACE子句必须在视图上具有DROP权限。 表和视图共享数据库中相同的名称空间因此数据库不能包含具有相同名称的表和视图。 视图必须具有唯一的列名不得有重复就像基表那样。默认情况下由SELECT语句检索的列名将用作视图列名。如果想为视图列定义明确的名称可使用可选的column_list子句列出由逗号隔开的ID。column_list中的名称数目必须等于SELECT语句检索的列数。 SELECT语句检索的列可以是对表中列的简单引用 也可以是使用函数、常量值、操作符等的表达式。
修改视图
除了使用CREATE OR REPLACE VIEW修改视图外也可以使用ALTER修改视图语法如下
ALTER [ALGORITHM{UNDEFINED|MERGE|TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED|LOCAL] CHECK OPTION];删除视图
数据库中的任何对象都会占用数据库的存储空间视图也不例外。当视图不再使用时要及时删除数据库中多余的视图。
DROP VIEW [schema_name.]view_name1, view_name2, ...;视图一旦删除就不可恢复所以要谨慎操作。 通过视图更新数据
通过视图更新数据是指通过视图来插入、更新、删除表中的数据通过视图更新数据的方法有3种分别是INSERT、UPDATE和DELETE。视图是一个虚拟表其中没有数据。因此通过视图更新数据时都是转到基表进行更新的。
1. 插入数据
使用INSERT语句可以向单个基本表组成的视图中插入数据而不能向两个表或多个表组成的视图中插入数据。
INSERT INTO view_name VALUES(value1, value2, ...);2. 更新数据
UPDATE view_name SET name1value1, name2value2, ... where_statement;3. 删除数据
DELETE FROM view_name where_statement;查看视图信息
1. DESCRIBE
使用DESCRIBE语句不仅可以查看数据表的基本信息还可以查看视图的基本信息。视图也是一个表它是一个虚拟表。
DESCRIBE view_name;
# 等价
DESC view_name;2. SHOW TABLE STATUS
SHOW TABLE STATUS LIKE view_name;3. SHOW CREATE VIEW
使用SHOW CREATE VIEW可以查看视图元信息语法如下
SHOW CREATE VIEW view_name;4. 在views表中查看
在MySQL中所有视图的定义都存在information_schema数据库下的views表中。查询该表可以查看数据库中所有视图的详细信息语法如下
SELECT * FROM information_schema.views;