修改视图是指修改 MySQL 数据库中存在的视图,当基本表的某些字段发生变化时,可以通过修改视图来保持与基本表的一致性。

基本语法

可以使用 ALTER VIEW 语句来对已有的视图进行修改。

语法格式如下:

ALTER VIEW AS

语法说明如下:

1.:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。

2.:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。

需要注意的是,对于 ALTER VIEW 语句的使用,需要用户具有针对视图的 CREATE VIEW 和 DROP 权限,以及由 SELECT 语句选择的每一列上的某些权限。

修改视图的定义,除了可以通过 ALTER VIEW 外,也可以使用 DROP VIEW 语句先删除视图,再使用 CREATE VIEW 语句来实现。

修改视图内容

视图是一个虚拟表,实际的数据来自于基本表,所以通过插入、修改和删除操作更新视图中的数据,实质上是在更新视图所引用的基本表的数据。

注意:对视图的修改就是对基本表的修改,因此在修改时,要满足基本表的数据定义。

某些视图是可更新的。也就是说,可以使用 UPDATE、DELETE 或 INSERT 等语句更新基本表的内容。对于可更新的视图,视图中的行和基本表的行之间必须具有一对一的关系。

还有一些特定的其他结构,这些结构会使得视图不可更新。更具体地讲,如果视图包含以下结构中的任何一种,它就是不可更新的:

1.聚合函数 SUM()、MIN()、MAX()、COUNT() 等。

2.DISTINCT 关键字。

3.GROUP BY 子句。

4.HAVING 子句。

5.UNION 或 UNION ALL 运算符。

6.位于选择列表中的子查询。

7.FROM 子句中的不可更新视图或包含多个表。

8.WHERE 子句中的子查询,引用 FROM 子句中的表。

9.ALGORITHM 选项为 TEMPTABLE(使用临时表总会使视图成为不可更新的)的时候。

【实例 1】使用 ALTER 语句修改视图 测试视图,输入的 SQL 语句和执行结果如下所示。

mysql> ALTER VIEW 测试视图 AS SELECT id,name,age FROM 测试表;

Query OK, 0 rows affected (0.07 sec)

mysql> DESC 测试视图;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id    | int(11)     | NO   |     | 0       |       |

| name  | varchar(45) | YES  |     | NULL    |       |

| age   | int(11)     | YES  |     | NULL    |       |

+-------+-------------+------+-----+---------+-------+

3 rows in set (0.03 sec)

用户可以通过视图来插入、更新、删除表中的数据,因为视图是一个虚拟的表,没有数据。通过视图更新时转到基本表上进行更新,如果对视图增加或删除记录,实际上是对基本表增加或删除记录。

查看视图 测试视图 的数据内容,如下所示。

mysql> SELECT * FROM 测试视图;

+----+--------+------+

| id | name   | age  |

+----+--------+------+

|  1 | Dany   |   24 |

|  2 | Green  |   23 |

|  3 | Henry  |   23 |

|  4 | Jane   |   22 |

|  5 | Jim    |   24 |

|  6 | John   |   21 |

|  7 | Lily   |   22 |

|  8 | Susan  |   23 |

|  9 | Thomas |   22 |

| 10 | Tom    |   23 |

+----+--------+------+

10 rows in set (0.00 sec)

【实例 2】使用 UPDATE 语句更新视图 测试视图,输入的 SQL 语句和执行结果如下所示。

mysql> UPDATE 测试视图 SET age=25 WHERE id=1;

Query OK, 0 rows affected (0.24 sec)

Rows matched: 1  Changed: 0  Warnings: 0

mysql> SELECT * FROM 测试视图;

+----+--------+------+

| id | name   | age  |

+----+--------+------+

|  1 | Dany   |   25 |

|  2 | Green  |   23 |

|  3 | Henry  |   23 |

|  4 | Jane   |   22 |

|  5 | Jim    |   24 |

|  6 | John   |   21 |

|  7 | Lily   |   22 |

|  8 | Susan  |   23 |

|  9 | Thomas |   22 |

| 10 | Tom    |   23 |

+----+--------+------+

10 rows in set (0.00 sec)

查看基本表 测试表 和视图 测试视图 的内容,如下所示。

mysql> SELECT * FROM 测试表;

+----+--------+---------+------+------+--------+------------+

| id | name   | dept_id | age  | sex  | height | login_date |

+----+--------+---------+------+------+--------+------------+

|  1 | Dany   |       1 |   25 | F    |    160 | 2015-09-10 |

|  2 | Green  |       3 |   23 | F    |    158 | 2016-10-22 |

|  3 | Henry  |       2 |   23 | M    |    185 | 2015-05-31 |

|  4 | Jane   |       1 |   22 | F    |    162 | 2016-12-20 |

|  5 | Jim    |       1 |   24 | M    |    175 | 2016-01-15 |

|  6 | John   |       2 |   21 | M    |    172 | 2015-11-11 |

|  7 | Lily   |       6 |   22 | F    |    165 | 2016-02-26 |

|  8 | Susan  |       4 |   23 | F    |    170 | 2015-10-01 |

|  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 |

| 10 | Tom    |       4 |   23 | M    |    165 | 2016-08-05 |

+----+--------+---------+------+------+--------+------------+

10 rows in set (0.00 sec)

mysql> SELECT * FROM 测试视图;

+------+--------+------+-------+-------+----------+------------+

| s_id | s_name | d_id | s_age | s_sex | s_height | s_date     |

+------+--------+------+-------+-------+----------+------------+

|    1 | Dany   |    1 |    25 | F     |      160 | 2015-09-10 |

|    2 | Green  |    3 |    23 | F     |      158 | 2016-10-22 |

|    3 | Henry  |    2 |    23 | M     |      185 | 2015-05-31 |

|    4 | Jane   |    1 |    22 | F     |      162 | 2016-12-20 |

|    5 | Jim    |    1 |    24 | M     |      175 | 2016-01-15 |

|    6 | John   |    2 |    21 | M     |      172 | 2015-11-11 |

|    7 | Lily   |    6 |    22 | F     |      165 | 2016-02-26 |

|    8 | Susan  |    4 |    23 | F     |      170 | 2015-10-01 |

|    9 | Thomas |    3 |    22 | M     |      178 | 2016-06-07 |

|   10 | Tom    |    4 |    23 | M     |      165 | 2016-08-05 |

+------+--------+------+-------+-------+----------+------------+

10 rows in set (0.00 sec)

修改视图名称

修改视图的名称可以先将视图删除,然后按照相同的定义语句进行视图的创建,并命名为新的视图名称。

mysql修改视图定义_MySQL修改视图相关推荐

  1. mysql 视图 教程_MySQL VIEW(视图)

    一.什么是视图? 视图就是存储下来的SQL SELECT语句,也可以说是虚拟的表(在MySQL中视图被当着表来用).这些数据可以是从一个或几个基本表(或视图)的数据.也可以是用户自已定义的数据.其实视 ...

  2. mysql 存储过程改用户_Mysql修改存储过程相关权限问题

    在使用mysql数据库经常都会遇到这么一个问题,其它用户定义的存储过程,现在使用另一个用户却无法修改或者删除等:正常情况下存储过程的定义者对它有修改.删除的权限:但是其它的用户就要相于的授权,不然无法 ...

  3. mysql 创建视图语法_MySQL创建视图的语法格式

    视图,具有简化查询语句.安全性和保证逻辑数据独立性等作用 创建视图的语法格式 视图中,包含SELECT查询的结果,因此,视图的创建基于SELECT语句,和已经存在的数据表,视图可以建立在一张表上,也可 ...

  4. mysql连接数详解_MySQl 修改最大连接数详解

    今天使用ide连接线下MySQL报错Can not connect to MySQL server. Too many connections,报错很明确,与MySQL的连接数满了.想想也是,每起一个 ...

  5. oracle查看视图定义语句_oracle视图详解

    Oracle 视图详解 一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的.视图只有逻辑定义.每次使用的时候,只是重新执行 ...

  6. mysql表结构定义_mysql 表结构及基本操作

    说明在mysql语句中,sql语句总共分四种 a.DDL数据定义语句=>常用的ddl语句有(CREATE[创建],DROP[删除],ALTER[修改表结构]) b.DML数据操作语句=>常 ...

  7. MySQL数据库视图(view),视图定义、创建视图、修改视图

    原文链接:https://blog.csdn.net/moxigandashu/article/details/63254901 转载于:https://www.cnblogs.com/chrdai/ ...

  8. mysql 视图 局部变量_mysql创建视图和存储过程,变量

    创建视图 sql>create view 视图名 as select语句; 修改视图并添加别名 sql>create or replace view empvu10 (employee_n ...

  9. mysql如何进行视图恢复_mysql事务 视图 索引 备份和恢复

    事务 1.事务: 概念:是作为单个逻辑工作单元执行的一系列操作 多个操作作为一个整体向系统提交,要么都执行,要么都不执行 事务是一个不可分割的工作逻辑单元 默认情况下 , 每条单独的SQL语句视为一个 ...

最新文章

  1. bootstrap:按钮,下拉菜单
  2. 各类木材强度_层状磷酸锆/ 聚磷酸铵复合阻燃剂对木材的阻燃抑烟性能研究
  3. python修改linux网卡信息,linux下修改网卡接口名称
  4. Leetcode 208. 实现 Trie (前缀树) 解题思路及C++实现
  5. 图解HTTP学习记录(六)
  6. springboot+springsecurity+mybatis plus注解实现对方法的权限处理
  7. 51nod1244 欧拉函数之和 杜教筛
  8. 这款免费小工具,让你的Mac也能实现右键新建
  9. csdn相册超出了20m了,怎么办?求助
  10. python os.system(cls)没反应_这真的是全宇宙最简单的Python安装方式了
  11. ajax 刷新output,JSF生命周期及AJAX局部刷新
  12. SSH框架调用scrapy爬虫
  13. nginx 报错502
  14. Java常用的开发软件下载地址以及问题解决
  15. FoxMail上配置163邮箱的方法
  16. mysql 处理转义'_mysql转义处理
  17. 梦幻西游服务器转移中暂时无法登陆,梦幻西游:转服常见问题答疑,赶紧先收藏起来,总会用到...
  18. c# 一个月中的工作日_在Excel中查找一个月中的第N个工作日
  19. 【Python】递归实现n的全排列
  20. 基于Arcgis Runtime SDK 100.x 的Android GIS开发之基础配置

热门文章

  1. python爬虫采集66代理(66IP)并验证可用性
  2. 由百度基础面面试想到的和总结的
  3. (Java)通讯录的实现
  4. 自定义安装MS Office Project2007会出错
  5. 针对移动手机漏洞与安全支付现状分析
  6. python中导入numpy库_python中的Numpy库
  7. 合成游戏开发 一起来养猪 幸福饭店 山海经
  8. 怎样进入加密的qq空间查看相册
  9. 【Linux】软硬链接 文件存储,删除,文件目录管理 (cp、mv、rm、cut、sort、uniq、wc、head、tail、split 、which、whereis、type、find)
  10. 朗坤环境递交注册:拟募资11亿 陈建湘家族色彩浓厚