mysql視圖原理與用法實(shí)例詳解
本文實(shí)例講述了mysql視圖原理與用法。分享給大家供大家參考,具體如下:
本文內(nèi)容: 什么是視圖 創(chuàng)建視圖 查看視圖 視圖的修改 視圖的刪除 視圖的數(shù)據(jù)操作首發(fā)日期:2018-04-13
什么是視圖: 視圖是一種基于查詢(xún)結(jié)果的虛擬表,數(shù)據(jù)來(lái)源的表稱(chēng)為基本表。 視圖的建立和刪除不影響基本表。 視圖的插入,修改操作會(huì)影響基本表。 如果視圖來(lái)自多個(gè)基本表,那么不可以修改基本表。 視圖的用處: 1.視圖基于查詢(xún)結(jié)果,使得視圖可以隱藏基本表一些不該展示給用戶(hù)的數(shù)據(jù)信息(比如某個(gè)開(kāi)發(fā)人員需要用戶(hù)信息表,但不應(yīng)該展示給他用戶(hù)的密碼信息。) 2.視圖是一個(gè)虛擬表,可以將查詢(xún)信息存儲(chǔ)到視圖中,這樣可以便于操作。 ...... 創(chuàng)建視圖: 語(yǔ)法:create view 視圖名 as select語(yǔ)句 [with check option];【select語(yǔ)句可以多表查詢(xún)結(jié)果:聯(lián)合查詢(xún)、連接查詢(xún)】 with check option會(huì)依據(jù)where等條件語(yǔ)句來(lái)限制插入和修改操作(比如檢索出來(lái)的視圖數(shù)據(jù)是男的,不允許將男的改成女的)create view man_info as select * from student where gender='male'; 補(bǔ)充: 視圖的創(chuàng)建還有一個(gè)可選項(xiàng):視圖算法(這里不講述,想了解的可以百度)查看視圖: 視圖是一個(gè)虛擬表,針對(duì)表的查看語(yǔ)句都可以使用到視圖中 查看所有視圖:show tables/views; 查看視圖結(jié)構(gòu):desc/describe/show columns from 視圖名; 查看視圖創(chuàng)建語(yǔ)句:show create table/view 視圖名; 視圖的修改: 有時(shí)候可能發(fā)生定義視圖錯(cuò)誤,所以這時(shí)候會(huì)執(zhí)行修改視圖操作。 語(yǔ)法:alter view 視圖名 as 新的select語(yǔ)句;
create view user_view as select * from user;alter view user_view as select username,money from user;補(bǔ)充: 由于視圖是一種虛擬表,還有一種可以修改視圖的方法:create or replace view 視圖創(chuàng)建語(yǔ)句;【將以新的視圖覆蓋舊視圖】視圖的刪除: 語(yǔ)法:drop view 視圖名[,視圖名…]; 示例:
drop view student_class,student_info; 視圖的數(shù)據(jù)操作: 如果視圖來(lái)自多個(gè)基本表,那么不可以修改基本表。不過(guò)理論上update是允許的。視圖的數(shù)據(jù)查看: 語(yǔ)法:select 字段列表 from 視圖名;【與基本表的查詢(xún)操作是一致的。】視圖的數(shù)據(jù)插入: 數(shù)據(jù)來(lái)源自多個(gè)基本表時(shí),無(wú)法進(jìn)行插入操作。 語(yǔ)法:insert into 視圖名 values();【與基本表的插入操作是一致的。】 注意:視圖結(jié)構(gòu)來(lái)自于基本表,所以要接受基本表的約束。如果某個(gè)字段不允許為空,但視圖的插入操作又沒(méi)賦值的話(huà),會(huì)插入失敗。視圖的數(shù)據(jù)修改: 語(yǔ)法:update 視圖名 set 字段名 = 值 where 條件;【與基本表的修改操作是一致的。】視圖的數(shù)據(jù)刪除: 數(shù)據(jù)來(lái)源自多個(gè)基本表時(shí),無(wú)法進(jìn)行刪除操作。 語(yǔ)法:delete from 視圖名 where 條件;【與基本表的刪除操作是一致的。】
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《MySQL查詢(xún)技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
相關(guān)文章:
1. Window7安裝MariaDB數(shù)據(jù)庫(kù)及系統(tǒng)初始化操作分析2. mysql備份策略的實(shí)現(xiàn)(全量備份+增量備份)3. Sql Server 2000數(shù)據(jù)庫(kù)日志日益龐大的解決方法4. DB2 9數(shù)據(jù)庫(kù)中有關(guān)同步trigger的記錄5. 如何應(yīng)用SQL Server DBCC避免堵塞6. 用shell抽取,更新db2的數(shù)據(jù)7. Mysql最新版8.0.21下載安裝配置教程詳解8. Mysql InnoDB的鎖定機(jī)制實(shí)例詳解9. sql server建表的操作方法10. ORA-06512數(shù)字或值錯(cuò)誤字符串緩沖區(qū)太小異常詳解
