日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

5、修改视图(ALTER VIEW)

發(fā)布時間:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5、修改视图(ALTER VIEW) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

修改視圖是指修改 MySQL 數(shù)據(jù)庫中存在的視圖,當基本表的某些字段發(fā)生變化時,可以通過修改視圖來保持與基本表的一致性。

基本語法

可以使用 ALTER VIEW 語句來對已有的視圖進行修改。

語法格式如下:

ALTER VIEW <視圖名> AS <SELECT語句>

語法說明如下:

  • <視圖名>:指定視圖的名稱。該名稱在數(shù)據(jù)庫中必須是唯一的,不能與其他表或視圖同名。
  • <SELECT 語句>:指定創(chuàng)建視圖的 SELECT 語句,可用于查詢多個基礎表或源視圖。

需要注意的是,對于 ALTER VIEW 語句的使用,需要用戶具有針對視圖的 CREATE VIEW 和 DROP 權限,以及由 SELECT 語句選擇的每一列上的某些權限。

修改視圖的定義,除了可以通過 ALTER VIEW 外,也可以使用 DROP VIEW 語句先刪除視圖,再使用 CREATE VIEW 語句來實現(xiàn)。

修改視圖內容

如果對視圖增加,修改,刪除記錄,實際上是對基本表增加,修改,刪除記錄

視圖是一個虛擬表,實際的數(shù)據(jù)來自于基本表,所以通過插入、修改和刪除操作更新視圖中的數(shù)據(jù),實質上是在更新視圖所引用的基本表的數(shù)據(jù)。

注意:對視圖的修改就是對基本表的修改,因此在修改時,要滿足基本表的數(shù)據(jù)定義。

某些視圖是可更新的。也就是說,可以使用 UPDATE、DELETE 或 INSERT 等語句更新基本表的內容。對于可更新的視圖,視圖中的行和基本表的行之間必須具有一對一的關系。

還有一些特定的其他結構,這些結構會使得視圖不可更新。更具體地講,如果視圖包含以下結構中的任何一種,它就是不可更新的:

  • 聚合函數(shù) SUM()、MIN()、MAX()、COUNT() 等。
  • DISTINCT 關鍵字。
  • GROUP BY 子句。
  • HAVING 子句。
  • UNION 或 UNION ALL 運算符。
  • 位于選擇列表中的子查詢。
  • FROM 子句中的不可更新視圖或包含多個表。
  • WHERE 子句中的子查詢,引用 FROM 子句中的表。
  • ALGORITHM 選項為 TEMPTABLE(使用臨時表總會使視圖成為不可更新的)的時候。

【實例 1】使用 ALTER 語句修改視圖 view_students_info,輸入的 SQL 語句和執(zhí)行結果如下所示。

mysql> ALTER VIEW view_students_info-> AS SELECT id,name,age-> FROM tb_students_info; mysql> DESC view_students_info; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | | 0 | | | name | varchar(45) | YES | | NULL | | | age | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+

用戶可以通過視圖來插入、更新、刪除表中的數(shù)據(jù),因為視圖是一個虛擬的表,沒有數(shù)據(jù)。通過視圖更新時轉到基本表上進行更新,如果對視圖增加或刪除記錄,實際上是對基本表增加或刪除記錄。

查看視圖 view_students_info 的數(shù)據(jù)內容,如下所示。

mysql> SELECT * FROM view_students_info; +----+--------+------+ | 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 | +----+--------+------+

【實例 2】使用 UPDATE 語句更新視圖 view_students_info,輸入的 SQL 語句和執(zhí)行結果如下所示。

mysql> UPDATE view_students_info-> SET age=25 WHERE id=1; mysql> SELECT * FROM view_students_info; +----+--------+------+ | 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 | +----+--------+------+

查看基本表 tb_students_info 和視圖 v_students_info 的內容,如下所示。

mysql> SELECT * FROM tb_students_info; +----+--------+---------+------+------+--------+------------+ | 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 | +----+--------+---------+------+------+--------+------------+ mysql> SELECT * FROM v_students_info; +------+--------+------+-------+-------+----------+------------+ | 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 | +------+--------+------+-------+-------+----------+------------+

修改視圖名稱

修改視圖的名稱可以先將視圖刪除,然后按照相同的定義語句進行視圖的創(chuàng)建,并命名為新的視圖名稱。

總結

以上是生活随笔為你收集整理的5、修改视图(ALTER VIEW)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。