版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用授課人:陳翠松項(xiàng)目10使用視圖通過(guò)多表查詢(xún)可以實(shí)現(xiàn)更大范圍的數(shù)據(jù)整合,滿(mǎn)足復(fù)雜的數(shù)據(jù)需求,并且不影響數(shù)據(jù)庫(kù)的規(guī)范性。但每次操作都要輸入查詢(xún)語(yǔ)句比較麻煩,小王決定把查詢(xún)保存下來(lái),將其轉(zhuǎn)變?yōu)橐晥D來(lái)提高工作效率。視圖操作方便,提交數(shù)據(jù)安全,并且還能更新數(shù)據(jù)。工作情境目錄01創(chuàng)建和管理視圖02通過(guò)視圖更新數(shù)據(jù)03鞏固與小結(jié)04任務(wù)訓(xùn)練01創(chuàng)建和管理視圖一、創(chuàng)建和管理視圖任務(wù)分析使用視圖不僅能有效保護(hù)數(shù)據(jù),還能提高數(shù)據(jù)的安全性,因此,小王在粵文創(chuàng)項(xiàng)目中,根據(jù)項(xiàng)目特點(diǎn)設(shè)計(jì)了不少視圖,以提高數(shù)據(jù)安全性和操作效率。小王對(duì)粵文創(chuàng)進(jìn)行分析后得到的任務(wù)清單如下。任務(wù)編號(hào)任務(wù)內(nèi)容任務(wù)10-1創(chuàng)建兩個(gè)視圖,分別顯示各個(gè)城市的城市中文名和電話(huà)區(qū)號(hào),以及城市中文名和車(chē)牌代碼任務(wù)10-2創(chuàng)建視圖,顯示城市民俗信息任務(wù)10-3創(chuàng)建視圖,顯示城市名人信息任務(wù)10-4創(chuàng)建視圖,顯示城市榮譽(yù)信息任務(wù)10-5創(chuàng)建視圖,顯示工作計(jì)劃參與人員表信息一、創(chuàng)建和管理視圖知識(shí)儲(chǔ)備1、初識(shí)視圖視圖是數(shù)據(jù)庫(kù)中的重要概念。視圖是一個(gè)虛擬表,其內(nèi)容由查詢(xún)定義。數(shù)據(jù)庫(kù)真實(shí)表稱(chēng)為基本表。與基本表一樣,視圖也是由一系列帶有名稱(chēng)的列和行數(shù)據(jù)組成的。但是,視圖并不在數(shù)據(jù)庫(kù)中以存儲(chǔ)數(shù)據(jù)值集的形式存在,而是存儲(chǔ)查詢(xún)命令,在引用視圖時(shí)才動(dòng)態(tài)生成數(shù)據(jù)。視圖的建立和刪除只影響視圖本身,不影響對(duì)應(yīng)的基本表。從用戶(hù)的角度來(lái)看,一個(gè)視圖是從一個(gè)特定的角度查看數(shù)據(jù)庫(kù)中的數(shù)據(jù)。視圖有很多優(yōu)點(diǎn),主要表現(xiàn)在以下幾方面。1)定制數(shù)據(jù),提高安全性2)簡(jiǎn)化操作,提高效率3)邏輯數(shù)據(jù)獨(dú)立性強(qiáng),方便數(shù)據(jù)合并、分割和共享一、創(chuàng)建和管理視圖知識(shí)儲(chǔ)備2、創(chuàng)建視圖創(chuàng)建視圖的語(yǔ)法格式如下如下:CREATEVIEW視圖名[(字段列表)]ASSELECT語(yǔ)句WITHCHECKOPTION;需要說(shuō)明以下幾點(diǎn)。SELECT語(yǔ)句不能引用系統(tǒng)或用戶(hù)變量,不能包含F(xiàn)ROM子句中的子查詢(xún),也不能引用預(yù)處理語(yǔ)句參數(shù)。盡管創(chuàng)建的視圖是一個(gè)虛擬表,但可以當(dāng)作表操作,還可以作為其他視圖的數(shù)據(jù)源??梢允褂肧ELECT語(yǔ)句查詢(xún)視圖數(shù)據(jù),可以使用DESC顯示視圖所包含的字段。如果在創(chuàng)建視圖時(shí)設(shè)置了參數(shù)“WITHCHECKOPTION”,那么更新數(shù)據(jù)時(shí)不能插入或更新不符合視圖限制條件的記錄。一、創(chuàng)建和管理視圖知識(shí)儲(chǔ)備示例10-1創(chuàng)建視圖vquerytitle,查詢(xún)工作人員表user中的userId、userName和fkTitle。程序代碼如下:CREATEVIEWvquerytitleASSELECTuserId,username,fkTitleFROMuser;示例10-2創(chuàng)建視圖vquerygender,查詢(xún)工作人員表user中的userId、userName和gender,并將字段名稱(chēng)分別改為工號(hào)、姓名和性別。程序代碼如下:CREATEVIEWvquerygender(工號(hào),姓名,性別)ASSELECTuserId,username,genderFROMuser;示例10-3創(chuàng)建視圖vqueryhonor,查詢(xún)各個(gè)城市的榮譽(yù),并顯示編號(hào)、城市和榮譽(yù)。程序代碼如下:CREATEVIEWvqueryhonor(編號(hào),城市,榮譽(yù))ASSELECTid,chineseName,honoraryTitleFROMhonorJOINareaONhonor.fkAreaNumber=area.areaNumber;一、創(chuàng)建和管理視圖知識(shí)儲(chǔ)備3、管理視圖1)打開(kāi)視圖雖然視圖是虛擬表,但其使用方法與基本表的使用方法完全一致。查看視圖所有數(shù)據(jù)內(nèi)容可以直接使用SELECT語(yǔ)句,語(yǔ)法格式如下:SELECT*FROM視圖名;示例10-4打開(kāi)視圖vquerygender。程序代碼如下:SELECT*FROMvquerygender;一、創(chuàng)建和管理視圖知識(shí)儲(chǔ)備3、管理視圖2)查看視圖(1)查看視圖結(jié)構(gòu)。查看視圖結(jié)構(gòu)可以使用DESCRIBE(可以簡(jiǎn)寫(xiě)為DESC)語(yǔ)句,語(yǔ)法格式如下:DESCRIBE視圖名;(2)查看視圖詳細(xì)信息。查看視圖詳細(xì)信息可以使用SHOWCREATEVIEW語(yǔ)句,語(yǔ)法格式如下:SHOWCREATEVIEW視圖名;(3)查看所有視圖。查看所有表和視圖可以使用SHOWTABLES語(yǔ)句,語(yǔ)法格式如下:SHOWTABLES;示例10-5查看視圖vquerygender的結(jié)構(gòu)和詳細(xì)信息。程序代碼如下:DESCRIBEvquerygender;SHOWCREATEVIEWvquerygender;SHOWTABLES;一、創(chuàng)建和管理視圖知識(shí)儲(chǔ)備3、管理視圖3)修改視圖修改視圖可以先刪除原有視圖再新建視圖,也可以使用ALTERVIEW語(yǔ)句,該語(yǔ)句要求登錄用戶(hù)除了有SELECT權(quán)限,還要有CREATEVIEW和DROPVIEW權(quán)限。修改視圖的使用方法如下:ALTERVIEW視圖名ASSELECT語(yǔ)句;4)刪除視圖刪除視圖可以使用DROPVIEW語(yǔ)句,語(yǔ)法格式如下:DROPVIEW視圖名;示例10-6刪除視圖vquerygender。程序代碼如下:DROPVIEWvquerygender;一、創(chuàng)建和管理視圖知識(shí)儲(chǔ)備3、使用Navicat操作視圖(1)啟動(dòng)Navicat,連接MySQL服務(wù)器,雙擊指定的數(shù)據(jù)庫(kù),單擊“視圖”圖標(biāo),顯示視圖列表,如圖10-2所示。
(2)選中指定的視圖后,單擊視圖列表上方的“打開(kāi)視圖”選項(xiàng)圖標(biāo)可以查看選中的視圖的所有數(shù)據(jù),單擊“刪除視圖”圖標(biāo)可以刪除選中的視圖;單擊“導(dǎo)出向?qū)А眻D標(biāo)可以將選中的視圖的內(nèi)容導(dǎo)出為指定格式文件。(3)單擊“新建視圖”圖標(biāo),先在工作區(qū)輸入查詢(xún)語(yǔ)句并保存,再輸入視圖名,如圖10-3所示,輸入視圖名后單擊“確定”按鈕,系統(tǒng)會(huì)對(duì)查詢(xún)語(yǔ)句進(jìn)行規(guī)范化處理,如圖10-4所示,單擊代碼界面上方的“美化SQL”圖標(biāo),美化結(jié)果如圖10-5所示。一、創(chuàng)建和管理視圖知識(shí)儲(chǔ)備3、使用Navicat操作視圖一、創(chuàng)建和管理視圖知識(shí)儲(chǔ)備3、使用Navicat操作視圖(4)選中指定的視圖后,單擊視圖列表上方的“設(shè)計(jì)視圖”圖標(biāo)可以查看選中的視圖的詳細(xì)內(nèi)容。如果要進(jìn)行修改,那么其操作方法與新建視圖的編輯操作一致。一、創(chuàng)建和管理視圖任務(wù)實(shí)施任務(wù)10-1創(chuàng)建兩個(gè)視圖,分別顯示各個(gè)城市的城市中文名和電話(huà)區(qū)號(hào),以及城市中文名和車(chē)牌代碼。任務(wù)10-2創(chuàng)建視圖,顯示城市民俗信息。任務(wù)10-3創(chuàng)建視圖,顯示城市名人信息。任務(wù)10-4創(chuàng)建視圖,顯示城市榮譽(yù)信息。任務(wù)10-5創(chuàng)建視圖,顯示工作計(jì)劃參與人員表信息。02通過(guò)視圖更新數(shù)據(jù)二、通過(guò)視圖更新數(shù)據(jù)任務(wù)分析盡管視圖只是一個(gè)虛擬表,只能動(dòng)態(tài)顯示數(shù)據(jù),并不能真正保存數(shù)據(jù),但是能修改數(shù)據(jù)。小王對(duì)粵文創(chuàng)進(jìn)行分析后得到的任務(wù)清單如下。任務(wù)編號(hào)任務(wù)內(nèi)容任務(wù)10-6通過(guò)視圖添加數(shù)據(jù)任務(wù)10-7通過(guò)視圖修改數(shù)據(jù)任務(wù)10-8通過(guò)視圖刪除數(shù)據(jù)二、通過(guò)視圖更新數(shù)據(jù)知識(shí)儲(chǔ)備1、通過(guò)視圖更新數(shù)據(jù)表通過(guò)視圖可以更新、插入和刪除基本表中的數(shù)據(jù)。視圖和基本表中的數(shù)據(jù)都會(huì)更新??梢允褂肬PDATE語(yǔ)句更新數(shù)據(jù),使用INSERT語(yǔ)句插入數(shù)據(jù),使用DELETE語(yǔ)句刪除數(shù)據(jù)。當(dāng)視圖中包含以下內(nèi)容時(shí),不能通過(guò)視圖來(lái)修改數(shù)據(jù)。(1)視圖不包含基本表中被定義為非空約束,并且沒(méi)有默認(rèn)值的字段。(2)在定義視圖的SELECT語(yǔ)句中,使用了數(shù)學(xué)表達(dá)式。(3)在定義視圖的SELECT語(yǔ)句中,使用了聚合函數(shù)。(4)在定義視圖的SELECT語(yǔ)句中,使用了DISTINCT、UNION、TOP、GROUPBY或HAVING子句。(5)在視圖中,可以一次修改多個(gè)基本表中的數(shù)據(jù)。二、通過(guò)視圖更新數(shù)據(jù)知識(shí)儲(chǔ)備示例10-7通過(guò)視圖vquerylicensePlateCode,將佛山的車(chē)牌代碼改為“粵Y”。程序代碼如下:UPDATEvquerylicensePlateCodeSET車(chē)牌代碼="粵Y"WHERE城市中文名="佛山";SELECT*FROMvquerylicensePlateCode;示例10-8通過(guò)視圖vqueryparticipant,修改編號(hào)為1的記錄,將“2023春惠州行”修改為“2023新春惠州行”,將“李欣”修改為“李小欣”。程序代碼如下:UPDATEvqueryparticipantSET計(jì)劃名稱(chēng)="2023新春惠州行",參與者姓名="李小欣"WHERE編號(hào)=1;SELECT*FROMvqueryparticipant;修改失敗,這是為什么呢?運(yùn)行結(jié)果如圖10-7所示。在一個(gè)修改命令中,同時(shí)修改了兩個(gè)基本表的數(shù)據(jù)。二、通過(guò)視圖更新數(shù)據(jù)知識(shí)儲(chǔ)備2、通過(guò)視圖向數(shù)據(jù)表中插入數(shù)據(jù)示例10-9向視圖vqueryareaCode中添加數(shù)據(jù)
“測(cè)試城市”和“999”。程序代碼如下:INSERTINTOvqueryareaCodeVALUES("測(cè)試城市","999");DESCvqueryareaCode;DESCarea;運(yùn)行結(jié)果如圖10-7所示。插入數(shù)據(jù)為什么會(huì)失敗呢?因?yàn)橐晥DvqueryareaCode中只有兩個(gè)字段,所以只能給這兩個(gè)字段輸入值,但其對(duì)應(yīng)的基本表area中有9個(gè)字段。除了與視圖相同的2個(gè)字段,基本表還有4個(gè)非空字段。視圖的數(shù)據(jù)保存在基本表中,因此為視圖vqueryareaCode添加數(shù)據(jù),其實(shí)就是為基本表area添加數(shù)據(jù),因?yàn)檫€有4個(gè)非空字段沒(méi)有賦值,所以無(wú)法插入數(shù)據(jù),最終數(shù)據(jù)插入操作失敗。如果成功插入數(shù)據(jù),那么應(yīng)檢查是否正確創(chuàng)建了area表。二、通過(guò)視圖更新數(shù)據(jù)知識(shí)儲(chǔ)備3、通過(guò)視圖刪除數(shù)據(jù)表中的數(shù)據(jù)示例10-10通過(guò)視圖vquerylicensePlateCode,刪除城市中文名為"佛山"的記錄。程序代碼如下:DELETEFROMvquerylicensePlateCodeWHERE城市中文名="佛山";SELECT*FROMvquerylicensePlateCodeWHERE城市中文名="佛山";SELECT*FROMareaWHEREchineseName="佛山";不僅刪除了視圖vquerylicensePlateCode中的記錄,
還刪除了基本表area中的數(shù)據(jù),運(yùn)行結(jié)果如圖10-9所示。測(cè)試完后,將刪除的數(shù)據(jù)補(bǔ)回,代碼如下:INSERTINTOareaVALUES("5880","佛山","Foshan,F(xiàn)atshan","禪城","廣東省中部",3797.72,9498900,"0757","粵E");SELECT*FROMareaWHEREchineseName="佛山";二、通過(guò)視圖更新數(shù)據(jù)知識(shí)儲(chǔ)備3、通過(guò)視圖刪除數(shù)據(jù)表中的數(shù)據(jù)示例10-10通過(guò)視圖vquerylicensePlateCode,刪除城市中文名為"佛山"的記錄。程序代碼如下:DELETEFROMvquerylicensePlateCodeWHERE城市中文名="佛山";SELECT*FROMvquerylicensePlateCodeWHERE城市中文名="佛山";SELECT*FROMareaWHEREchineseName="佛山";不僅刪除了視圖vquerylicensePlateCode中的記錄,還刪除了基本表area中的數(shù)據(jù),運(yùn)行結(jié)果如圖10-9所示。測(cè)試完后,將刪除的數(shù)據(jù)補(bǔ)回,代碼如下:INSERTINTOareaVALUES("5880","佛山","Foshan,F(xiàn)atshan","禪城","廣東省中部",3797.72,9498900,"0757","粵E");SELECT*FROMareaWHEREchineseName="佛山";二、通過(guò)視圖更新數(shù)據(jù)任務(wù)實(shí)施任務(wù)10-6通過(guò)視圖添加數(shù)據(jù)。向視圖vquerylicensePlateCode中添加數(shù)據(jù)"測(cè)試城市"和"粵Z"。任務(wù)10-7通過(guò)視圖修改數(shù)據(jù)。通過(guò)視圖vqueryparticipant,先將參與者姓名改為“李小欣”,再修改為原來(lái)的內(nèi)容。任務(wù)10-8通過(guò)視圖刪除數(shù)據(jù)。先向基本表area中添加一條臨時(shí)記錄,再通過(guò)視圖vquerylicensePlateCode刪除該記錄。03鞏固與小結(jié)三、鞏固與小結(jié)任務(wù)分析(1)視圖的內(nèi)涵和優(yōu)點(diǎn)。(2)創(chuàng)建視圖:CREATEVIEW視圖名[(字段列表)]ASSELECT語(yǔ)句WITHCHECKOPTION。(3)管理視圖。 打開(kāi)視圖:SELECT*FROM視圖名。 查看視圖結(jié)構(gòu):DESCRIBE視圖名。 查看視圖詳細(xì)信息:SHOWCREATEVIEW視圖名。 查看所有視圖:SHOWTABLES。 修改視圖:ALT
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年社會(huì)救助及公益服務(wù)行業(yè)分析報(bào)告及未來(lái)五至十年行業(yè)發(fā)展報(bào)告
- 2025年SET電子支付流程升級(jí)與加密技術(shù)集成服務(wù)合同
- 2025年度文化藝術(shù)展覽承辦協(xié)議3篇
- 二零二五年度價(jià)格保密協(xié)議范本全文版下載6篇
- 2024年牛肉火鍋原料供應(yīng)長(zhǎng)期合作協(xié)議3篇
- 2025版特種作業(yè)安全員資質(zhì)認(rèn)證服務(wù)協(xié)議書(shū)3篇
- 2025年度護(hù)理機(jī)構(gòu)護(hù)工服務(wù)合作協(xié)議書(shū)規(guī)范3篇
- 二零二五年度二手房購(gòu)置貸款擔(dān)保合同2篇
- 2025版監(jiān)理合同延期補(bǔ)充協(xié)議-工期調(diào)整與合同金額3篇
- 2025年度醫(yī)療單位員工勞動(dòng)安全與醫(yī)療設(shè)備使用合同3篇
- 供應(yīng)商可持續(xù)發(fā)展計(jì)劃
- 生姜的產(chǎn)地分布
- 普通高中學(xué)業(yè)水平合格性考試(會(huì)考)語(yǔ)文試題(附答案)
- 統(tǒng)編語(yǔ)文八上文言文過(guò)關(guān)小測(cè)驗(yàn)-《愚公移山》
- 12、口腔科診療指南及技術(shù)操作規(guī)范
- 醫(yī)藥電商行業(yè)發(fā)展趨勢(shì)報(bào)告
- 2020年10月自考00020高等數(shù)學(xué)一高數(shù)一試題及答案含評(píng)分標(biāo)準(zhǔn)
- 勞務(wù)派遣方案
- 電費(fèi)異常問(wèn)題篩選及處理途徑
- 幼兒園中班語(yǔ)言繪本《三只蝴蝶》課件
- 高中英語(yǔ)校本教材《英語(yǔ)美文閱讀與欣賞》
評(píng)論
0/150
提交評(píng)論