mysql視圖原理與用法實(shí)例詳解
本文實(shí)例講述了mysql視圖原理與用法。分享給大家供大家參考,具體如下:
本文內(nèi)容:
- 什么是視圖
- 創(chuàng)建視圖
- 查看視圖
- 視圖的修改
- 視圖的刪除
- 視圖的數(shù)據(jù)操作
首發(fā)日期:2018-04-13
什么是視圖:
- 視圖是一種基于查詢結(jié)果的虛擬表,數(shù)據(jù)來(lái)源的表稱為基本表。
- 視圖的建立和刪除不影響基本表。
- 視圖的插入,修改操作會(huì)影響基本表。
- 如果視圖來(lái)自多個(gè)基本表,那么不可以修改基本表。
- 視圖的用處:
- 1.視圖基于查詢結(jié)果,使得視圖可以隱藏基本表一些不該展示給用戶的數(shù)據(jù)信息(比如某個(gè)開(kāi)發(fā)人員需要用戶信息表,但不應(yīng)該展示給他用戶的密碼信息。)
- 2.視圖是一個(gè)虛擬表,可以將查詢信息存儲(chǔ)到視圖中,這樣可以便于操作。
- ......
創(chuàng)建視圖:
- 語(yǔ)法:create view 視圖名 as select語(yǔ)句 [with check option];【select語(yǔ)句可以多表查詢結(jié)果:聯(liá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";
- with check option會(huì)依據(jù)where等條件語(yǔ)句來(lái)限制插入和修改操作(比如檢索出來(lái)的視圖數(shù)據(jù)是男的,不允許將男的改成女的)
補(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 視圖名;【與基本表的查詢操作是一致的?!?/li>
視圖的數(shù)據(jù)插入:
- 數(shù)據(jù)來(lái)源自多個(gè)基本表時(shí),無(wú)法進(jìn)行插入操作。
- 語(yǔ)法:insert into 視圖名 values();【與基本表的插入操作是一致的?!?/li>
- 注意:視圖結(jié)構(gòu)來(lái)自于基本表,所以要接受基本表的約束。如果某個(gè)字段不允許為空,但視圖的插入操作又沒(méi)賦值的話,會(huì)插入失敗。
視圖的數(shù)據(jù)修改:
- 語(yǔ)法:update 視圖名 set 字段名 = 值 where 條件;【與基本表的修改操作是一致的?!?/li>
視圖的數(shù)據(jù)刪除:
- 數(shù)據(jù)來(lái)源自多個(gè)基本表時(shí),無(wú)法進(jìn)行刪除操作。
- 語(yǔ)法:delete from 視圖名 where 條件;【與基本表的刪除操作是一致的?!?/li>
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
- mysql視圖之創(chuàng)建視圖(CREATE VIEW)和使用限制實(shí)例詳解
- MySQL如何創(chuàng)建視圖
- 詳細(xì)分析mysql視圖的原理及使用方法
- MySQL的視圖和索引用法與區(qū)別詳解
- 淺談MySql 視圖、觸發(fā)器以及存儲(chǔ)過(guò)程
- MySql視圖觸發(fā)器存儲(chǔ)過(guò)程詳解
- mysql視圖之管理視圖實(shí)例詳解【增刪改查操作】
- mysql視圖之創(chuàng)建可更新視圖的方法詳解
- MySQL中Update、select聯(lián)用操作單表、多表,及視圖與臨時(shí)表的區(qū)別
- mysql三張表連接建立視圖
- MySQL 視圖(View)原理解析
相關(guān)文章
EXCEL數(shù)據(jù)上傳到SQL SERVER中的簡(jiǎn)單實(shí)現(xiàn)方法
以下是對(duì)EXCEL數(shù)據(jù)上傳到SQL SERVER中的簡(jiǎn)單實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
MySQL數(shù)據(jù)庫(kù)終端—常用操作指令代碼
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)終端—常用操作指令代碼,添加用戶、更改用戶名和host主機(jī)、更改密碼、刪除用戶等等,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-01-01
如何恢復(fù)Mysql數(shù)據(jù)庫(kù)的詳細(xì)介紹
這里說(shuō)的MySql恢復(fù)數(shù)據(jù)庫(kù),是指沒(méi)有通過(guò)正常備份的情況下,通過(guò)Mysql保存的數(shù)據(jù)文件如何恢復(fù)數(shù)據(jù)庫(kù)2013-09-09
windows 安裝解壓版 mysql5.7.28 winx64的詳細(xì)教程
這篇文章主要介紹了windows 安裝解壓版 mysql5.7.28 winx64的詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
教你巧用mysql位運(yùn)算解決多選值存儲(chǔ)的問(wèn)題
如果你不知道什么是位運(yùn)算的話,那么請(qǐng)你先去看看基礎(chǔ)的C語(yǔ)言教程吧,下面這篇文章主要給大家介紹了關(guān)于如何巧用mysql位運(yùn)算解決多選值存儲(chǔ)問(wèn)題的相關(guān)資料,需要的朋友可以參考下2022-02-02
mysql中RAND()隨便查詢記錄效率問(wèn)題和解決辦法分享
在我們做開(kāi)發(fā)的中效率一直是個(gè)問(wèn)題,特別是對(duì)于很多大數(shù)據(jù)量操作,今天我們碰到一個(gè)要隨機(jī)查詢數(shù)據(jù),一開(kāi)始我們可能想到最簡(jiǎn)單的order by rand() 來(lái)操作但效率不敢恭維啊2012-04-04
MySQL的索引系統(tǒng)采用B+樹(shù)的原因解析
索引是為了加速對(duì)表中數(shù)據(jù)行的檢索而創(chuàng)建的一種分散的存儲(chǔ)結(jié)構(gòu),這篇文章主要介紹了MySQL的索引系統(tǒng)采用B+樹(shù)的原因解析,需要的朋友可以參考下2021-09-09

