mysql視圖功能與用法實(shí)例分析
本文實(shí)例講述了mysql視圖功能與用法。分享給大家供大家參考,具體如下:
通俗的講,視圖就是一條SELECT語句執(zhí)行后返回的結(jié)果集。
//單表視圖 CREATE [ALGORITHM]={UNDEFINED|MERGE|TEMPTABLE}] VIEW 視圖名 [(屬性清單)] AS SELECT 語句 [WITH [CASCADED|LOCAL] CHECK OPTION]; //將查詢到的結(jié)果返回為一個(gè)虛擬表,會(huì)根據(jù)數(shù)據(jù)庫(kù)變化而變化 CREATE VIEW work_view(ID, Name, Addr) AS SELECT id,name,address FROM work; //多表上創(chuàng)建視圖 //ALGORITHM=MERGE ALGORITHM有三個(gè)參數(shù)分別是:merge、TEMPTABLE、UNDEFINED(merge合并表,temptable無法更新信息,undefined) CREATE ALGORITHM=MERGE VIEW work_view2(ID,NAME,SALARY) AS SELECT work.id,name,salary FROM work,salary WHERE work.id=salary.id WITH LOCAL CHECK OPTION;
方便操作,特別是查詢操作,減少?gòu)?fù)雜的SQL語句,增強(qiáng)可讀性;
視圖與表是一對(duì)一關(guān)系情況:如果沒有其它約束(如視圖中沒有的字段,在基本表中是必填字段情況),是可以進(jìn)行增刪改數(shù)據(jù)操作;
視圖與表是一對(duì)多關(guān)系情況:如果只修改一張表的數(shù)據(jù),且沒有其它約束(如視圖中沒有的字段,在基本表中是必填字段情況),是可以進(jìn)行改數(shù)據(jù)操作,如以下語句,操作成功;
視圖和臨時(shí)表的區(qū)別
- 視圖只是一條預(yù)編譯的SQL語句,并不保存實(shí)際數(shù)據(jù)
- 臨時(shí)表是保存在tempdb中的實(shí)際的表
- 物理空間的分配不一樣,試圖不分配空間, 臨時(shí)表會(huì)分配空間
- 視圖是一個(gè)快照,是一個(gè)虛表
- 臨時(shí)表是客觀存在的表類型對(duì)象Create TEMPORARY table
- 它們的結(jié)構(gòu)一個(gè)是表、一個(gè)快照。可以把視圖像象成聯(lián)合表的快捷方式
創(chuàng)建臨時(shí)表
CREATE TEMPORARY TABLE tmp_table ( name VARCHAR(10) NOT NULL, value INTEGER NOT NULL)
直接將查詢結(jié)果導(dǎo)入臨時(shí)表
CREATE TEMPORARY TABLE tmp_table SELECT * FROM table_name
臨時(shí)表只在當(dāng)前連接可見,當(dāng)這個(gè)連接關(guān)閉的時(shí)候,會(huì)自動(dòng)drop。在同一個(gè)query語句中,你只能查找一次臨時(shí)表。show tables 語句不會(huì)列舉臨時(shí)表,但是會(huì)列出內(nèi)存表。你不能用rename來重命名一個(gè)臨時(shí)表。但是,你可以alter table代替:
內(nèi)存表:表結(jié)構(gòu)建在磁盤里,數(shù)據(jù)在內(nèi)存里 ,當(dāng)停止服務(wù)后,表中的數(shù)據(jù)丟失,而表的結(jié)構(gòu)不會(huì)丟失。內(nèi)存表也可以被看作是臨時(shí)表的一種。
內(nèi)存表的建立:
CREATE TEMPORARY TABLE tmp_table ( name VARCHAR(10) NOT NULL, value INTEGER NOT NULL ) TYPE = HEAP
注意: TYPE = HEAP必須要有。
內(nèi)存表必須使用memory存儲(chǔ)引擎
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。