欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql視圖修改表中信息的方法

這篇文章將為大家詳細(xì)講解有關(guān)MySQL視圖修改表中信息的方法,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

南岳網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,南岳網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為南岳上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個(gè)售后服務(wù)好的南岳做網(wǎng)站的公司定做!

在mysql中,視圖是一個(gè)虛擬表,實(shí)際的數(shù)據(jù)來自于基本表,所以通過插入、修改和刪除操作更新視圖中的數(shù)據(jù)信息,實(shí)質(zhì)上就是在更新視圖所引用的基本表的數(shù)據(jù)信息;語法格式“ALTER VIEW <視圖名> AS <SELECT語句>”。

修改視圖內(nèi)容

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

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

基本語法

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

語法格式如下:

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

語法說明如下:

  • <視圖名>:指定視圖的名稱。該名稱在數(shù)據(jù)庫中必須是唯一的,不能與其他表或視圖同名。

  • <SELECT 語句>:指定創(chuàng)建視圖的 SELECT 語句,可用于查詢多個(gè)基礎(chǔ)表或源視圖。

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

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

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

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

  • 聚合函數(shù) SUM()、MIN()、MAX()、COUNT() 等。

  • DISTINCT 關(guān)鍵字。

  • GROUP BY 子句。

  • HAVING 子句。

  • UNION 或 UNION ALL 運(yùn)算符。

  • 位于選擇列表中的子查詢。

  • FROM 子句中的不可更新視圖或包含多個(gè)表。

  • WHERE 子句中的子查詢,引用 FROM 子句中的表。

  • ALGORITHM 選項(xiàng)為 TEMPTABLE(使用臨時(shí)表總會(huì)使視圖成為不可更新的)的時(shí)候。

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

mysql> ALTER VIEW view_students_info
    -> AS SELECT id,name,age
    -> FROM tb_students_info;
Query OK, 0 rows affected (0.07 sec)
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    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.03 sec)

用戶可以通過視圖來插入、更新、刪除表中的數(shù)據(jù),因?yàn)橐晥D是一個(gè)虛擬的表,沒有數(shù)據(jù)。通過視圖更新時(shí)轉(zhuǎn)到基本表上進(jìn)行更新,如果對視圖增加或刪除記錄,實(shí)際上是對基本表增加或刪除記錄。

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

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 |
+----+--------+------+
10 rows in set (0.00 sec)

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

mysql> UPDATE view_students_info
    -> SET age=25 WHERE id=1;
Query OK, 0 rows affected (0.24 sec)
Rows matched: 1  Changed: 0  Warnings: 0
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 |
+----+--------+------+
10 rows in set (0.00 sec)

查看基本表 tb_students_info 和視圖 v_students_info 的內(nèi)容,如下所示。

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 |
+----+--------+---------+------+------+--------+------------+
10 rows in set (0.00 sec)

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 |
+------+--------+------+-------+-------+----------+------------+
10 rows in set (0.00 sec)

關(guān)于mysql視圖修改表中信息的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

文章名稱:mysql視圖修改表中信息的方法
文章地址:http://chinadenli.net/article6/gishig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)外貿(mào)建站網(wǎng)站設(shè)計(jì)外貿(mào)網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)公司Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司