暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

修改视图

SQL新手 2022-12-08
112

本文为您介绍如何修改普通视图的定义。

语法

ALTER VIEW view_name [(column_name_list)] AS select_stmt;

column_name_list:
    column_name [, column_name ...]

参数解释

参数描述
select_stmt是一种 SELECT 语句。它给出了视图的定义。该语句可以从基表或其他视图进行选择。
column_name_list视图必须具有唯一的列名,不得有重复,就像基表那样。缺省情况下,由 SELECT 语句检索的列名将用作视图列名。 要想为视图列定义明确的名称,可使用可选的 column_name_list 子句,列出由逗号隔开的 ID。column_name_list 中的名称数目必须等于 SELECT语句检索的列数。 SELECT 语句检索的列可以是对表列的简单引用。也可以是使用函数、常量值、操作符等的表达式。

示例

  1. 查看视图 v 的结构。

    obclient> DESC v;
    +-------+--------------+------+-----+---------+-------+
    | Field | Type         | Null | Key | Default | Extra |
    +-------+--------------+------+-----+---------+-------+
    | id    | int(11)      | YES  |     | NULL    |       |
    | name  | varchar(256) | YES  |     | NULL    |       |
    | date  | date         | YES  |     | NULL    |       |
    | age   | int(11)      | YES  |     | NULL    |       |
    | sex   | varchar(256) | YES  |     | NULL    |       |
    +-------+--------------+------+-----+---------+-------+
    5 rows in set
    
  2. 查看视图 v 的创建。

    obclient> show create table v\G
    *************************** 1. row ***************************
                    View: v
             Create View: CREATE VIEW `v` AS select `a`.`id1` AS `id`,`a`.`name` AS `name`,`b`.`date` AS `date`,`b`.`age` AS `age`,`a`.`sex` AS `sex` from `ny`.`t1` `a`,`ny`.`t2` `b` where (`a`.`id1` = `b`.`id2`)
    character_set_client: utf8mb4
    collation_connection: utf8mb4_general_ci
    1 row in set
    
  3. 查看 t3 表的表结构。

    obclient> DESC t3;
    +-------+--------------+------+-----+---------+-------+
    | Field | Type         | Null | Key | Default | Extra |
    +-------+--------------+------+-----+---------+-------+
    | id    | int(10)      | YES  |     | NULL    |       |
    | name  | varchar(256) | YES  |     | NULL    |       |
    | date  | date         | YES  |     | NULL    |       |
    | age   | int(11)      | YES  |     | NULL    |       |
    | sex   | varchar(128) | YES  |     | NULL    |       |
    +-------+--------------+------+-----+---------+-------+
    5 rows in set
    
  4. 将视图 v 的定义修改为 t3 表的定义。

    obclient> ALTER VIEW v AS SELECT * FROM t3;
    Query OK, 0 rows affected
    
  5. 再次查看视图 v 的结构。

    obclient> desc v;
    +-------+--------------+------+-----+---------+-------+
    | Field | Type         | Null | Key | Default | Extra |
    +-------+--------------+------+-----+---------+-------+
    | id    | int(10)      | YES  |     | NULL    |       |
    | name  | varchar(256) | YES  |     | NULL    |       |
    | date  | date         | YES  |     | NULL    |       |
    | age   | int(11)      | YES  |     | NULL    |       |
    | sex   | varchar(128) | YES  |     | NULL    |       |
    +-------+--------------+------+-----+---------+-------+
    5 rows in set
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论