亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL視圖的概念、創(chuàng)建、查看、刪除和修改詳解

 更新時(shí)間:2022年08月16日 14:30:15   作者:霸道小明  
視圖是指計(jì)算機(jī)數(shù)據(jù)庫(kù)中的視圖,是一個(gè)虛擬表,其內(nèi)容由查詢(xún)定義,下面這篇文章主要給大家介紹了關(guān)于MySQL視圖的概念、創(chuàng)建、查看、刪除和修改的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、什么是視圖

小學(xué)的時(shí)候,每年都會(huì)舉辦一次抽考活動(dòng),意思是從每一個(gè)班級(jí)里面篩選出幾個(gè)優(yōu)秀的同學(xué)去參加考試。這時(shí)候很多班級(jí)篩選出來(lái)的這些同學(xué)就可以臨時(shí)組成一個(gè)班級(jí),如果我們把每一個(gè)班級(jí)都當(dāng)做是一張真實(shí)的表,這個(gè)臨時(shí)的班級(jí)在數(shù)據(jù)庫(kù)里就可以當(dāng)做一個(gè)視圖,也就是說(shuō),這個(gè)臨時(shí)的班級(jí)其實(shí)不是真實(shí)存在的,當(dāng)考試過(guò)后,這些學(xué)生還是各回各家各找各媽。。。。 

視圖是從一個(gè)或多個(gè)表中導(dǎo)出來(lái)的表,是一種虛擬存在的表。視圖就像一個(gè)窗口,通過(guò)這個(gè)窗口可以看到系統(tǒng)專(zhuān)門(mén)提供的數(shù)據(jù),這樣用戶(hù)可以不看整個(gè)數(shù)據(jù)庫(kù)表中的數(shù)據(jù),而只關(guān)心對(duì)自己有用的數(shù)據(jù)。視圖可以使用戶(hù)的操作更方便,而且可以保障數(shù)據(jù)庫(kù)系統(tǒng)的安全性。 

二、創(chuàng)建視圖

1.在單表上創(chuàng)建視圖

雖然視圖可以被看成是一種虛擬表,但是其物理上是不存在的,即MySQL并沒(méi)有專(zhuān)門(mén)的位置為視圖存儲(chǔ)數(shù)據(jù)。根據(jù)視圖的概念可以發(fā)現(xiàn)其數(shù)據(jù)來(lái)源于查詢(xún)語(yǔ)句,因此創(chuàng)建視圖的基本語(yǔ)法為: 

 CREATE[OR REPLACE] VIEW viewname[(columnlist)]   
    AS SELECT statement  
CREATE表示創(chuàng)建新的視圖;REPLACE表示替換已經(jīng)創(chuàng)建的視圖;[(columnlist)]表示可以顯示的指出視圖中有哪些列(必須和select語(yǔ)句對(duì)應(yīng));viewname為視圖的名稱(chēng);columnlist為屬性列;SELECT statement表示SELECT語(yǔ)句; 

注意! 創(chuàng)建視圖需要登陸用戶(hù)有相應(yīng)的權(quán)限,查看權(quán)限方法: 

select user,Select_priv,Create_view_priv from mysql.user;

例如在下面學(xué)生表上面創(chuàng)建視圖

創(chuàng)建視圖SQL語(yǔ)句示例

create view view_student 
    as select id,name ,class_id,sex from student;

查看視圖

通過(guò)視圖可以檢索數(shù)據(jù)

視圖本身相當(dāng)于一個(gè)窗口,通過(guò)這個(gè)窗口我們也可以修改數(shù)據(jù)

update view_student set name='小王王' where name='小王';

2.在多表上創(chuàng)建視圖

CREATE[OR REPLACE] VIEW viewname[columnlist]   
    AS SELECT statement 
  • CREATE表示創(chuàng)建新的視圖;
  • REPLACE表示替換已經(jīng)創(chuàng)建的視圖;
  • viewname為視圖的名稱(chēng);
  • columnlist為屬性列;
  • SELECT statement表示SELECT語(yǔ)句。與單表上創(chuàng)建視圖不同的是,SELECT子句是涉及到多表的聯(lián)合查詢(xún)語(yǔ)句。 

例如在下面教師表和學(xué)生表之間創(chuàng)建視圖

SQL語(yǔ)句 (視圖不允許有列名重復(fù),所以這里的class.id和student.id要起別名

create view view_student_teacher 
    as select class.id as teacher_id,teacher,class,student.id,student.name,sex 
    from class 
        left join student on class.id=student.class_id;

三、查看視圖 

創(chuàng)建完視圖后,像表一樣,我們經(jīng)常需要查看視圖信息。在MySQL中,有許多可以實(shí)現(xiàn)查看視圖的語(yǔ)句,如DESCRIBE、SHOW TABLES、SHOW CREATE VIEW。如果要使用這些語(yǔ)句,首先要確保擁有SHOW VIEW的權(quán)限。 

1.使用DESCRIBE | DESC語(yǔ)句查看視圖基本信息

視圖也是一張表,只是這張表比較特殊,是一張?zhí)摂M的表,所以同樣可以使用DESCRIBE語(yǔ)句來(lái)查看視圖的基本定義。DESCRIBE語(yǔ)句查看視圖的語(yǔ)法如下:

DESCRIBE | DESC viewname;

例如查看上面創(chuàng)建的視圖

2.使用SHOW TABLES語(yǔ)句查看視圖基本信息

從MySQL 5.1版本開(kāi)始,執(zhí)行SHOW TABLES語(yǔ)句時(shí)不僅會(huì)顯示表的名字,同時(shí)也會(huì)顯示視圖的名字。 

show tables

3.使用 show create view/table 語(yǔ)句查看視圖創(chuàng)建信息

SHOW CREATE TABLE|VIEW viewname;

四、更新視圖數(shù)據(jù) 

更新視圖是指通過(guò)視圖來(lái)插入(INSERT)、更新(UPDATE)和刪除(DELETE)表中的數(shù)據(jù)。因?yàn)橐晥D實(shí)質(zhì)是一個(gè)虛擬表,其中沒(méi)有數(shù)據(jù),通過(guò)視圖更新時(shí)都是轉(zhuǎn)換到基本表更新。更新視圖時(shí),只能更新權(quán)限范圍內(nèi)的數(shù)據(jù),超出范圍就不能更新了。

update view_student set name='小王' where name='小王王';

不能更新的情況:

  • 視圖中包含SUM()、COUNT()、MAX()和MIN()等函數(shù);
  • 視圖中包含UNION、UNION ALL、DISTINCT、GROUP BY和HAVING等關(guān)鍵字;
  • 視圖對(duì)應(yīng)的表存在沒(méi)有默認(rèn)值的列,而且該列沒(méi)有包含在視圖里;
  • 包含子查詢(xún)的視圖;
  • 其他特殊情況;

例如更改view_student_teacher時(shí)

五、修改視圖 

修改視圖是指修改數(shù)據(jù)庫(kù)中存在的視圖,當(dāng)基本表的某些字段發(fā)生變化的時(shí)候,可以通過(guò)修改視圖來(lái)保持與基本表的一致性。ALTER語(yǔ)句來(lái)修改視圖。 

ALTER VIEW viewname[columnlist]   
AS SELECT statement

這個(gè)語(yǔ)法中的所有關(guān)鍵字和參數(shù)除了alter 外,其他都和創(chuàng)建視圖是一樣的。

例如修改視圖view_student_teacher

SQL語(yǔ)句示例

alter view view_student_teacher 
as select teacher,class,name,sex 
    from class 
        left join student on class.id=student.class_id;

注意,當(dāng)真實(shí)表中修改了某個(gè)存在視圖中的字段時(shí),這個(gè)視圖也需要跟著變,否則會(huì)變成無(wú)效的視圖

例如,修改了student表中的name字段

alter table student change column name name1 varchar(64);
select * from view_student_teaccher;

這時(shí)候就需要將視圖也跟著修改

alter view view_student_teacher as select teacher,class,name1,sex 
    from class 
        left join student on class.id=student.class_id;

六、刪除視圖 

刪除視圖是指刪除數(shù)據(jù)庫(kù)中已存在的視圖。刪除視圖時(shí),只能刪除視圖的定義,不會(huì)刪除數(shù)據(jù)。

在MySQL中,可使用DROP VIEW語(yǔ)句來(lái)刪除視圖,但是用戶(hù)必須擁有DROP權(quán)限。刪除視圖的語(yǔ)法如下:

DROP VIEW viewname [,viewnamen];
參數(shù)viewname表示所要?jiǎng)h除視圖的名稱(chēng),可同時(shí)指定刪除多個(gè)視圖。 

總結(jié)

到此這篇關(guān)于MySQL視圖的概念、創(chuàng)建、查看、刪除和修改的文章就介紹到這了,更多相關(guān)MySQL視圖創(chuàng)建 查看 刪除和修改內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • MySql COALESCE函數(shù)使用方法代碼案例

    MySql COALESCE函數(shù)使用方法代碼案例

    這篇文章主要介紹了MySql COALESCE函數(shù)使用方法代碼案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • mysql 重要日志文件匯總

    mysql 重要日志文件匯總

    這篇文章主要介紹了mysql 重要日志文件的匯總,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-11-11
  • MySQL數(shù)據(jù)庫(kù)表分區(qū)注意事項(xiàng)大全【推薦】

    MySQL數(shù)據(jù)庫(kù)表分區(qū)注意事項(xiàng)大全【推薦】

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)表分區(qū)注意事項(xiàng)相關(guān)內(nèi)容,比較全面,這里分享給大家,需要的朋友可以參考。
    2017-10-10
  • 詳解SUM函數(shù)在MySQL中的值處理原則

    詳解SUM函數(shù)在MySQL中的值處理原則

    在SQL中,SUM函數(shù)是用于計(jì)算指定字段的總和的聚合函數(shù),這篇文章將給大家詳細(xì)介紹了SUM函數(shù)在SQL中的值處理原則,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-12-12
  • MySQL聯(lián)合索引與最左匹配原則的實(shí)現(xiàn)

    MySQL聯(lián)合索引與最左匹配原則的實(shí)現(xiàn)

    最左匹配原則在我們MySQL開(kāi)發(fā)過(guò)程中和面試過(guò)程中經(jīng)常遇到,為了加深印象和理解,我在這里把MySQL的最左匹配原則詳細(xì)的講解一下,感興趣的可以了解一下
    2023-12-12
  • MySQL創(chuàng)建用戶(hù)以及用戶(hù)權(quán)限詳細(xì)圖文教程

    MySQL創(chuàng)建用戶(hù)以及用戶(hù)權(quán)限詳細(xì)圖文教程

    在MySQL中可以通過(guò)創(chuàng)建用戶(hù)來(lái)管理數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限,下面這篇文章主要給大家介紹了關(guān)于MySQL創(chuàng)建用戶(hù)以及用戶(hù)權(quán)限的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • MYSQL出現(xiàn)" Client does not support authentication "的解決方法

    MYSQL出現(xiàn)" Client does not support authentication "的

    MYSQL出現(xiàn)" Client does not support authentication "的解決方法...
    2007-06-06
  • MySQL字符串函數(shù)詳解(推薦)

    MySQL字符串函數(shù)詳解(推薦)

    下面小編就為大家?guī)?lái)一篇MySQL字符串函數(shù)詳解(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • 用MySQL函數(shù)清除字符串首尾空白字符的方法

    用MySQL函數(shù)清除字符串首尾空白字符的方法

    由于內(nèi)容插入的時(shí)候沒(méi)辦法進(jìn)行完全的過(guò)濾,所以審核這里就經(jīng)常出問(wèn)題,搞的頭大,而MySQL的trim函數(shù)沒(méi)辦法去掉回車(chē)和換行,只能去掉多余的空格
    2011-03-03
  • MySQL 使用 SSL 連接配置詳解

    MySQL 使用 SSL 連接配置詳解

    本文給大家分享的是如何配置MySQL支持SSL連接方式的方法以及在docker中配置的具體案例,有需要的小伙伴可以參考下
    2016-12-12

最新評(píng)論