視圖的學(xué)習(xí)

簡(jiǎn)單的說,視圖是一張?zhí)摂M表,可以加快查詢速度。
創(chuàng)建視圖:CREATE VIEW 視圖名(列1,列2...) AS SELECT (列1,列2...) FROM ...;
修改視圖:CREATE OR REPLACE VIEW 視圖名 AS SELECT [...] FROM [...];
視圖條件限制:[WITH CHECK OPTION]

視圖的操作方式用實(shí)例來說明。
新建表user_first,user_product:


user_first.png

user_product.png

創(chuàng)建視圖user_info,user_simple_info:


user_simple_info.png

user_info.png

user_simple_info 視圖是user_first的子集,user_info是通過user_id關(guān)聯(lián)的視圖。

1.視圖的SELECT的使用:
與表的查詢方式一致,如:

SELECT a.user_a,a.user_b from user_info a
image.png

2.視圖的INSERT的使用:
(1)視圖為表的子集:

INSERT into user_simple_info(user_n,user_a) VALUES("插入",108)

視圖數(shù)據(jù)為:


image.png

表數(shù)據(jù)也同時(shí)跟新:


image.png

(2)視圖為多表關(guān)聯(lián):
INSERT into user_info(user_n,user_a,user_b) VALUES("插入",108,"化學(xué)")

插入時(shí)報(bào)錯(cuò):[Err] 1471 - The target table user_info of the INSERT is not insertable-into
無法插入!
3.視圖的UPDATE的使用:
子集視圖不再演示,可以更新。
多表關(guān)聯(lián)視圖:
更新一張表的數(shù)據(jù):

UPDATE user_info a SET a.user_a = 999 WHERE a.user_b = '語文'
image.png

發(fā)現(xiàn)視圖更新了2條,原因是更新語文這個(gè)數(shù)據(jù)時(shí),user_a來自于同一張表中的同一個(gè)數(shù)據(jù),數(shù)據(jù)源改變,導(dǎo)致修改了兩條。
更新兩張表的數(shù)據(jù):

UPDATE user_info a SET a.user_a = 999,a.user_b="haha"
image.png

發(fā)現(xiàn)無法修改!
4.視圖的DELETE的使用:
(1)視圖為表的子集:

DELETE from user_simple_info WHERE user_n = '33'

刪除后視圖數(shù)據(jù):


user_simple_info .png

刪除后表數(shù)據(jù):


user_first.png

可見視圖數(shù)據(jù)刪除可以影響表,這前提是視圖字段是表的子集。
(2)視圖為多表關(guān)聯(lián):
DELETE from user_info WHERE user_n = '22'
image.png

無法刪除!

上面是簡(jiǎn)單的對(duì)視圖進(jìn)行增刪改查,多表關(guān)聯(lián)后的視圖,一般操作無法完成。對(duì)表的子集的視圖可以增刪改查。如果對(duì)視圖操作成功,會(huì)影響對(duì)應(yīng)表。一般要修改數(shù)據(jù)的話,可以直接操作表,從而來改變視圖數(shù)據(jù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,981評(píng)論 0 9
  • 唉。 容我先嘆口氣。 因?yàn)槲业睦蠋熖珔柡α恕?他聲音很溫柔,然后會(huì)在解讀某一張牌的時(shí)候,輕描淡寫的說出一些我不愿意...
    瀚文ILoveU閱讀 5,578評(píng)論 0 0
  • 他騎著自行車 他開著寶馬 他一直小心地騎在路的邊上 急于搶道的他還是讓他來不及避讓 他的寶馬和他的自行車有了輕微地...
    王小永_6be2閱讀 627評(píng)論 2 13
  • 1、本文主要內(nèi)容 TreeMap及Set介紹 TreeMap源碼解析 Set源碼解析 2、TreeMap及Set介...
    某昆閱讀 331評(píng)論 0 0
  • 我寫的第一篇簡(jiǎn)書也是關(guān)于他,味道識(shí)人,但是現(xiàn)在我站在路口上,不知道是前進(jìn)還是后退。我應(yīng)該是喜歡他,真心喜歡。要不...
    約言2333閱讀 145評(píng)論 0 0

友情鏈接更多精彩內(nèi)容