若資料庫
1. 如果資料庫伺服器死機,以下哪幾個會發生
根據電腦死機發生時的情況可將其分為四大類:
①開機過程中出現死機:在啟動計算機時,只聽到硬碟自檢聲而看不到屏幕顯示,或乾脆在開機自檢時發出鳴叫聲但計算機不工作、或在開機自檢時出現錯誤提示等;
②在啟動計算機操作系統時發生死機:屏幕顯示計算機自檢通過,但在裝入操作系統時,計算機出現死機的情況;
③在使用一些應用程序過程中出現死機:計算機一直都運行良好,只在執行某些應用程序時出現死機的情況;
④退出操作系統時出現死機:就是在退出Win98等系統或返回DOS狀態時出現死機。
由干在「死機」狀態下無法用軟體或工具對系統進行診斷,因而增加了故障排除的難度。死機的一般表現有:系統不能啟動、顯示黑屏、顯示「凝固」、鍵盤不能輸入、軟體運行非正常中斷等。死機的原因大概有千千萬萬種,但只有兩個方面:一是由電腦硬體引起的,一是軟體設計不完善或與系統和系統其它正在運行的程序發生沖突。在硬體方面,禍首就是近來在電腦DIY界流行的「超頻』一—讓CPU工作在額定運行頻率以外的時鍾頻率上,CPU處於超額工作狀態,出現死機就不奇怪了;其次一個原因是某個硬體過熱,或者硬體資源沖突。當然還有其他一些硬體方面的原因。在軟體方面,因為軟體原因而造成的死機在電腦中幾乎佔了大多數(超頻了的電腦除外)。在Windows9x系列中使用了16位和32位混合的內核模式,因此安全性很低,因程序內存沖突而死機是經常會發生的事情。下面就來介紹一下遇到死機故障後一般的檢查處理方法。
一、排除系統「假」死機現象
1.首先排除因電源問題帶來的「假」死機現象。應檢查電腦電源是否插好,電源插座是否接觸良好,主機、顯示器以及列印機、掃描儀、外置式MODEM,音箱等主要外接電源的設備電源插頭是否可靠地插入了電源插座、上述各部件的電源開關是否都處於開(ON)的狀態。
2.檢查電腦各部件間數據,控制連線是否連接正確和可靠,插頭間是否有松動現象。尤其是主機與顯示器的數據線連接不良常常造成「黑屏」的假死機現象。
二、排除病毒感染引起的死機現象
用無毒干凈的系統盤引導系統,然後運行KILL,AV95、SCAN等防病毒軟體的最新版本對硬碟進行檢查,確保電腦安全,排除因病毒引起的死機現象。
另外,如果在殺毒後引起了死機現象,這多半是因為病毒破壞了系統文件、應用程序及關鍵的數據文件,或是殺毒軟體在消除病毒的同時對正常的文件進行了誤操作,破壞了正常文件的結構。碰到這類問題,只能將被損壞(即運行時引起死機)的系統或軟體重裝。
三、排除軟體安裝、配置問題引起的死機現象
1.如果是在軟體安裝過程中死機,則可能是系統某些配置與安裝的軟體沖突。這些配置包括系統BIOS設置、CONFIG.SYS和AUTOEXEC.BAT的設置、WIN.INI、SYSTEM.INI的設置以及一些硬體驅動程序和內存駐留程序的設置。
可以試著修改上述設置項。對BIOS可以取其默認設置,如「LOAD SETUP DEFAULT」和「LOAD BIOS DEFAULT」;對CONFIG.SYS和AUTOEXEC.BAT則可以在啟動時按F5跳過系統配置文件或按F8逐步選擇執行以及逐項修改CONFIG.SYS和AUTOEXEC.BAT中的配置(尤其是EMM386中關於EMS、XMS的配置情況)來判斷硬體與安裝程序什麼地方發生了沖突,一些硬體驅動程序和內存駐留程序則可以通過不裝載它們的方法來避免沖突。
2.如果是在軟體安裝後發生了死機,則是安裝好的程序與系統發生沖突。一般的做法是恢復系統在安裝前的各項配置,然後分析安裝程序新裝入部分使用的資源和可能發生的沖突,逐步排除故障原因。刪除新安裝程序也是解決沖突的方法之一。
四、根據系統啟動過程中的死機現象來分析
系統啟動過程中的死機現象包括兩種情況:
1.致命性死機,即系統自檢過程未完成就死機,一般系統不給出提示。對此可以根據開機自檢時致命性錯誤列表的情況,再結合其它方法對故障原因作進一步的分析。
2.非致命性死機,在自檢過程中或自檢完成後死機,但系統給出聲音、文字等提示信息。可以根據開機自檢時非致命性錯誤代碼表和開機自檢時鳴笛音響對應的錯誤代碼表來檢查;開機自檢時鳴笛音響對應的錯誤代碼表中所列的情況是對可能出現故障的部件作重點檢查,但也不能忽略相關部件的檢查,因為相當多的故障並不是由提示信息指出的部件直接引起,而常常由相關部件故障引發。
五、排除因使用、維護不當引起的死機現象
電腦在使用一段時間後也可能因為使用、維護不當而引起死機,尤其是長時間不使用電腦後常會出現此類故障。引起的原因有以下幾種:
1.積塵導致系統死機:灰塵是電腦的大敵。過多的灰塵附著在CPU、晶元、風扇的表面會導致這些元件散熱不良,電路印刷板上的灰塵在潮濕的環境中常常導致短路。上述兩種情況均會導致死機。
具體處理方法可以用毛刷將灰塵掃去,或用棉簽沾無水酒精清洗積塵元件。注意不要將毛刷和棉簽的毛、棉留在電路板和元件上而成為新的死機故障源。
2.部件受潮:長時間不使用電腦,會導致部分元件受潮而不能正常使用。可用電吹風的低熱擋均勻對受潮元件「烘乾」。注意不可對元件一部分加熱太久或溫度太高,避免烤壞元件。
3.板卡、晶元引腳氧化導致接觸不良:將板卡、晶元拔出,用橡皮擦輕輕擦拭引腳表面去除氧化物,重新插入插座。
4.板卡、外設介面松動導致死機:仔細檢查各I/O插槽插接是否正確,各外設介面接觸是否良好,線纜連接是否正常。
六、排除因系統配置不當引起的死機現象
系統配置與電腦硬體設備和系統BIOS、主板上跳線開關設置密切相關,常見的死機故障原因有:
1.主頻設置不當:此類故障主要有CPU主頻跳線開關設置錯誤、Remark的CPU引起的BIOS設置與實際情況不符、超頻使用CPU,或CPU性能不良死機。
2.內存條參數設置不當:此類故障主要有內存條設置錯誤和Remark內存條引起的BIOS設置與實際情況不符。
3.CACHE參數設置不當:此類故障主要有CHCHE設置錯誤、RemarkCACHE引起的BIOS設置與實際情況不符。
4.CMOS參數被破壞:頻繁修改CMOS參數,或病毒對CMOS參數的破壞,常常會導致CMOS參數混亂而很難恢復。可以採用對CMOS放電的方法並採用系統BIOS默認設置值重新設定CMOS參數。CMOS的放電方法可參照主板說明書進行。如果是病毒感染引起的,在重設CMOS參數後,還必須對硬碟殺毒。
七、排除因硬體安裝不當引起的死機現象
硬體外設安裝過程中的疏忽常常導致莫名其妙的死機,而且這一現象往往在電腦使用一段時間後才逐步顯露出來,因而具有一定的迷惑性。
1.部件安裝不到位、插接松動、連線不正確引起的死機,顯示卡與I/0插槽接觸不良常常引起顯示方面的死機故障,如「黑屏」,內存條、CACHE與插槽插接松動則常常引起程序運行中死機、甚至系統不能啟動,其它板卡與插槽(插座)的接觸問題也常常引起各種死機現象。要排除這些故障,只須將相應板卡、晶元用手摁緊、或從插槽(插座)上拔下重新安裝。如果有空閑插槽(插座),也可將該部件換一個插槽(插座)安裝以解決接觸問題。線纜連接不正確有時也會引發死機故障。
2.安裝不當導致部件變形、損壞引起的死機口徑不正確、長度不恰當的螺釘常常導致部件安裝孔損壞,螺釘接觸到部件內部電路引起短路導致死機,不規格的主板、零部件或不規范的安裝步驟常常引起機箱、主板、板卡外形上的變異因而擠壓該部件內部元件導致局部短路、內部元件損壞從而發生莫名其妙的死機。如果只是電腦部件外觀變形,可以通過正確的安裝方法和更換符合規格的零部件來解決;如果已經導致內部元件損壞,則只能更換新的零部件了。
八、排除因硬體品質不良引起的死機現象
一般說來,電腦產品都是國際大廠商按照國際標准流水線生產出來的,部件不良率是很低的。但是高利潤的誘惑使許多非法廠商對電腦標准零部件改頭換面、進行改頻、重新標記(Remark)、以次充好甚至將廢品、次品當作正品出售,導致這些「超水平」發揮的產品性能不穩定,環境略有不適或使用時間稍長就會頻繁發生故障。尤其是CPU、內存條、主板等核心部件及其相關產品的品質不良,是導致無原因死機的主要故障源。應著重檢查以下部件:
1.CPU CPU是被假冒得最多也是極容易導致死機的部件。被Remark的CPU在低溫、短時間使用時一切正常,但只要在連續高溫的環境中長時間使用,其死機弊端就很容易暴露。使用Windows、3DS等對CPU特性要求較高的軟體比DOS等簡單軟體更能發現CPU的問題。如需確認是否為此故確認是否為此故障可參照說明書將CPU主頻跳低1到2個檔次使用,比如將166降為150、133或120使用。如果死機現象大幅度減少或消失,就可以判斷是CPU有問題。也可以用交換法,更換同型號的正常CPU,如果不再死機一般可以斷定是CPU的問題。有些用戶喜歡把CPU超頻使用以獲得高速的性能,這也是常導致計算機死機的原因。一般將CPU跳回原頻率就能解決死機問題。
2.內存條 內存條常常被做的手腳有:速度標記被更改,如:70ns被Remark為60ns,非奇偶校驗冒充奇偶校驗內存,非EDO內存冒充EDO內存,劣質內存條冒充好內存條。在BIOS中將內存條讀寫時間適當增加(如:從60ns升為70ns),如果死機消失可以斷定是內存條速度問題。如果是內存本身的質量問題,只有更換新的內存條才能解決。
3.主板 一般主板的故障常常是最先考慮然而卻是要到最後才能確定的。除了印刷板上的飛線、斷線和主板上元件被燒焦、主板受擠壓變形、主板與機箱短路等明顯的現象外,主板本身的故障只有在確認了主板上所有零部件正常(將你的板卡、CPU、內存條等配件拿到好的主板上使用正常,而別人使用正常的板卡、器件插到你的主板上就不能正常運行)時才能判斷是否是主板故障,如果更換了好的同型號主板死機依然存在、則可能是該主板與某個零部件不兼容。要麼更換兼容的其它型號的主板、要麼只能用拔插法依次測試各板卡、晶元,找出不兼容的零部件更換之。
4.電源、風扇、機箱等 劣質電源、電源線纜故障、電源插接松動、電源電壓不穩都是引起不明原因死機的罪魁禍首。CPU風扇、電源風扇轉動不正常、風扇功率不足則會引起CPU和機箱內「產熱大戶」元件散熱不良因而引起死機。
九、系統黑屏故障的排除
系統死機故障多半表現為黑屏(即顯示器屏幕上無任何顯示)、這類故障與顯示器、顯示卡關系很密切,同時系統主板、CPU、CACHE、內存條,電源等部件的故障也能導致黑屏。系統黑屏死機故障的一般檢查方法如下:
1.排除「假」黑屏:檢查顯示器電源插頭是否插好,電源開關是否已打開,顯示器與主機上顯示卡的數據連線是否連接好、連接搖頭是否松動,看是否是因為這些因素而引起的黑屏。另外,應該動一下滑鼠或按一下鍵盤看屏幕是否恢復正常。因為黑屏也可能是因為設置了節能模式(可在BIOS設置中查看和修改)而出現的假死機。
2.在黑屏的同時系統其它部分是否工作正常,如:啟動時軟/硬碟驅動器自檢是否通過、鍵盤按鍵是否有反應等。可以通過交換法用一台好的顯示器接在主機上測試、如果只是顯示器黑屏而其它部分正常,則只是顯示器出了問題,這仍是一種假死機現象。
3.黑屏發生在系統開機自檢期間,請參見第四步。
4.黑屏發生在顯示驅動程序安裝或顯示模式設置期間,顯然是選擇了顯示系統不能支持的模式,應選擇一種較基本的顯示方式。如:Windows下設置顯示模式後黑屏或花屏,則應在DOS下運行Windows目錄下的SETUP.EXE程序選擇標准VGA顯示方式。
5.檢查顯示卡與主板I/O插槽接觸是否正常、可靠,必要時可以換一個I/O槽插入顯示卡試試。
6.換一塊已確認性能良好的同型號顯示卡插入主機重新啟動,若黑屏死機現象消除則是顯示卡的問題。
7.換一塊已確認性能良好的其它型號顯示卡插入主機重新啟動,若黑屏死機現象消除則是顯示卡與主機不兼容,可以考慮更換顯示卡或主板。
8.檢查是否錯誤設置了系統的核心部件,如CPU的頻率、內存條的讀寫時間、CACHE的刷新方式、主板的匯流排速率等,這些都可能導致黑屏死機。
9.檢查主機內部各部件連線是否正確,有一些特殊的連線錯誤會導致黑屏死機。
10.請參見本文的其它步騾所列的死機故障診斷方法,這些故障導致的死機常常也伴隨著黑屏。
2. 若資料庫的事務程序中執行「對0取余數」的運算,該系統將產生 A不會產生故障。B介質故障。 C事務
C 事務故障
3. 若資料庫中視圖A是基於關系R建立的,那麼如果關系R被刪除,該資料庫中是否還存在視圖A
不同的DBMS採取的處理不同,Oracle而言是存在的,但是視圖A標記為不可用,但是如果在重新create一個R那個這個A又是可用的了,前提是創建的R與原來的R結構完全相同。但是如果在刪除R的時候使用了cascade級聯刪除,那個A就不存在了。
4. jsp向資料庫插入數據時,若資料庫已有此數據怎樣實現提示資料庫已有此數據
在插入數據前先做一個查詢,返回一個布爾值的常量,布爾值如果為true 則進行插入操作,如果為假則提示用戶輸入的數據在資料庫中已經存在!希望對你有幫助~
5. 解決若資料庫的編碼為GB2312,怎樣在yii中
用alter語句. 如果資料庫已經有數據表了, 那每個表都要修改. (修改資料庫的字元集不會改變原有數據表的字元集)utf8:ALTER DATABASE `資料庫` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ALTER TABLE `數據表` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci gbk (包含gb2312):ALTER DATABASE `資料庫` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci ALTER TABLE `數據表` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
6. 如果資料庫只有一個關系怎麼證明參照完整性
您好,對於你的遇到的問題,我很高興能為你提供幫助,我之前也遇到過喲,以下是我的個人看法,希望能幫助到你,若有錯誤,還望見諒!。參照完整性,簡單的說就是表間主鍵外鍵的關系。
參照完整性屬於表間規則。對於永久關系的相關表,在更新、插入或刪除記錄時,如果只改其一不改其二,就會影響數據的完整性:例如修改父表中關鍵字值後,子表關鍵字值未做相應改變;刪除父表的某記錄後,子表的相應記錄未刪除,致使這些記錄稱為孤立記錄;對於子表插入的記錄,父表中沒有相應關鍵字值的記錄;等等。對於這些設計表間數據的完整性,統稱為參照完整性。
最主要的作用是 防止出現數據不一致非常感謝您的耐心觀看,如有幫助請採納,祝生活愉快!謝謝!
7. 若資料庫操作commit發生異常,沒有執行回滾,這時數據會存入資料庫嗎
弄清楚這個問題之前,要先要搞清楚執行數據修改(excute),但未提交事務之前,已修改的數據存放在哪裡?這時的數據是在資料庫內存緩沖區中。commit操作就是將緩沖區中已修改數據寫入磁碟,形成持久化存儲。
那麼當commit提交的修改的數據是多條時,假設部分數據已經由緩沖區寫入磁碟,另一部分還未完成時,出現異常,這個時候,如果不回滾,那麼就無法保證數據修改的一致性(比如聯機轉賬,A的賬戶扣了款,B的賬戶余額未增加)。
簡單來說就是:若資料庫操作commit發生異常,沒有執行回滾,這時可能出現部分數據保存成功,部分保存失敗,因此需要rollback回滾操作。
8. 用sql語句刪除資料庫中的邏輯文件,若資料庫的該邏輯文件有信息,是否能刪除
沒有簡單的方法來刪除表空間的數據文件,唯一的方法是刪除整個定義的表空間,步驟有下面(前提是這個數據文件上的數據是不需要了):因為使用alter database datafile 'name' offline drop,也可以物理的刪除一個數據文件但它的信息仍然記錄在數據字典中(不影響資料庫的運行)。
如果資料庫運行在非歸檔模式:
1. MOUNT資料庫 - startup mount
2. 刪除數據文件 - alter database datafile xxx offline drop
3. 打開(OPEN)資料庫 - alter database open
4. 查看屬於該表空間的所有對象:
select owner, segment_name, segment_type
from dba_segments
where tablespace_name='tbs_name'
5. 導出該表空間的所有對象------用exp命令來做
6. 刪除表空間 - drop tablespace tbs_name including contents
7. 刪除這個表空間的所有物理的數據文件Delete the physical datafiles belonging to the tablespace
8. 重建表空間,導入前面導出的DMP文件.
如果資料庫是運行在歸檔模式:
1. MOUNT資料庫 - startup mount
2. 刪除數據文件 - alter database datafile xxx offline
(Note: offline這個數據文件,此數據文件還是屬於這個資料庫的一部分,只是在控制文件中將它的狀態標記為offline.)
3. 在操作系統一級刪除物理的數據文件
4. 打開(OPEN)資料庫 - alter database open
5. 後面的可以做下面操作:
導出該表空間的對象
刪除表空間
重建表空間並導入對象
如果資料庫運行在歸檔模式下,並且數據文件有備份:
1.MOUNT資料庫
2.OFFLINE數據文件:alter database datafile xxx offline;
3.將備份的數據文件拷貝到原來數據文件的位置.
4.將備份數據文件到目前的所有歸檔日誌放到歸檔目錄.
5.恢復數據文件:recover automatic datafile xxx(要輸入全路徑名)
6.然後ONLINE數據文件:alter database datafile xxx online;
7.打開(OPEN)資料庫:alter database open;
8.做一次資料庫的關機全備份.
9. 若資料庫本身不支持事務,怎麼實現提交和回滾
給記錄行設定狀態序號和歷史狀態序號,更新前先設定狀態序號,如果成功了就把這個狀態序號給歷史序號以表示提交,如果失敗了就把原始數據給恢復過來以回滾。
10. 資料庫如何創建視圖
視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。
對其中所引用的基礎表來說,視圖的作用類似於篩選。定義視圖的篩選可以來自當前或其它資料庫的一個或多個表,或者其它視圖。通過視圖進行查詢沒有任何限制,通過它們進行數據修改時的限制也很少。
視圖是存儲在資料庫中的查詢的SQL 語句,它主要出於兩種原因:安全原因, 視圖可以隱藏一些數據,如:社會保險基金錶,可以用視圖只顯示姓名,地址,而不顯示社會保險號和工資數等,另一原因是可使復雜的查詢易於理解和使用。這個視圖就像一個「窗口」,從中只能看到你想看的數據列。這意味著你可以在這個視圖上使用SELECT *,而你看到的將是你在視圖定義里給出的那些數據列:
既然視圖的定義是基於基本表的,哪為什麼還要定義視圖呢?這是因為合理地使用視圖能夠帶來許多好處:
1、 視圖能簡化用戶操作
視圖機制使用戶可以將注意力集中在所關心地數據上。如果這些數據不是直接來自基本表,則可以通過定義視圖,使資料庫看起來結構簡單、清晰,並且可以簡化用戶的的數據查詢操作。例如,那些定義了若干張表連接的視圖,就將表與表之間的連接操作對用戶隱藏起來了。換句話說,用戶所作的只是對一個虛表的簡單查詢,而這個虛表是怎樣得來的,用戶無需了解。
2、 視圖使用戶能以多種角度看待同一數據
視圖機制能使不同的用戶以不同的方式看待同一數據,當許多不同種類的用戶共享同一個資料庫時,這種靈活性是非常必要的。
3、 視圖對重構資料庫提供了一定程度的邏輯獨立性
數據的物理獨立性是指用戶的應用程序不依賴於資料庫的物理結構。數據的邏輯獨立性是指當資料庫重構造時,如增加新的關系或對原有的關系增加新的欄位,用戶的應用程序不會受影響。層次資料庫和網狀資料庫一般能較好地支持數據的物理獨立性,而對於邏輯獨立性則不能完全的支持。
在關許資料庫中,資料庫的重構造往往是不可避免的。重構資料庫最常見的是將一個基本表「垂直」地分成多個基本表。例如:將學生關系Student(Sno,Sname,Ssex,Sage,Sdept),
分為SX(Sno,Sname,Sage)和SY(Sno,Ssex,Sdept)兩個關系。這時原表Student為SX表和SY表自然連接的結果。如果建立一個視圖Student:
[sql]view plain
CREATEVIEWStudent(Sno,Sname,Ssex,Sage,Sdept)ASSELECTSX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.SdeptFROMSX,SYWHERESX.Sno=SY.Sno;
CREATEVIEWVMGRADE
AS
SELECTSno,MAX(Grade)Mgrade
FROMSC
GROUPBYSno
SELECTSC.Sno,CnoFROMSC,VMGRADEWHERESC.Sno=VMGRADE.SnoANDSC.Grade=VMGRADE.Mgrade;
CREATETABLEt_employee(
IDINTPRIMARYKEYAUTO_INCREMENT,
NAMECHAR(30)NOTNULL,
SEXCHAR(2)NOTNULL,
AGEINTNOTNULL,
DEPARTMENTCHAR(10)NOTNULL,
SALARYINTNOTNULL,
HOMECHAR(30),
MARRYCHAR(2)NOTNULLDEFAULT'否',
HOBBYCHAR(30)
);
INSERTINTOlearning.t_employee(ID,NAME,SEX,AGE,DEPARTMENT,SALARY,HOME,MARRY,HOBBY)VALUES(NULL,'小紅','女',20,'人事部','4000','廣東','否','網球');
INSERTINTOlearning.t_employee(ID,NAME,SEX,AGE,DEPARTMENT,SALARY,HOME,MARRY,HOBBY)VALUES(NULL,'明日','女',21,'人事部','9000','北京','否','網球');
INSERTINTOlearning.t_employee(ID,NAME,SEX,AGE,DEPARTMENT,SALARY,HOME,MARRY,HOBBY)VALUES(NULL,'天天','男',22,'研發部','8000','上海','否','音樂');
INSERTINTOlearning.t_employee(ID,NAME,SEX,AGE,DEPARTMENT,SALARY,HOME,MARRY,HOBBY)VALUES(NULL,'大大','女',23,'研發部','9000','重慶','否','無');
INSERTINTOlearning.t_employee(ID,NAME,SEX,AGE,DEPARTMENT,SALARY,HOME,MARRY,HOBBY)VALUES(NULL,'王下','女',24,'研發部','9000','四川','是','足球');
INSERTINTOlearning.t_employee(ID,NAME,SEX,AGE,DEPARTMENT,SALARY,HOME,MARRY,HOBBY)VALUES(NULL,'無名','男',25,'銷售部','6000','福建','否','游戲');
INSERTINTOlearning.t_employee(ID,NAME,SEX,AGE,DEPARTMENT,SALARY,HOME,MARRY,HOBBY)VALUES(NULL,'不知道','女',26,'銷售部','5000','山西','否','籃球');
DROPVIEWIFEXISTS視圖名
這樣盡管資料庫的邏輯結構改變了(變為SX和SY兩個表了),但應用程序不必修改,因為新建立的視圖定義為用戶原來的關系,使用戶的外模式保持不變,用戶的應用程序通過視圖仍然能夠查找數據。
當然,視圖只能在一定程度上提供數據的邏輯獨立,比如由於視圖的更新是有條件的,因此應用程序中修改數據的語句可能仍會因為基本表構造的改變而改變。
4、視圖能夠對機密數據提供安全保護
有了視圖機制,就可以在設計資料庫應用系統時,對不同的用戶定義不同的視圖,使機密數據不出現在不應該看到這些數據的用戶視圖上。這樣視圖機制就自動提供了對機密數據的安全保護功能。例如,Student表涉及全校15個院系學生數據,可以在其上定義15個視圖,每個視圖只包含一個院系的學生數據,並只允許每個院系的主任查詢和修改本原系學生視圖。
5、適當的利用視圖可以更清晰地表達查詢
例如經常需要執行這樣的查詢「對每個學生找出他獲得最高成績的課程號」。可以先定義一個視圖,求出每個同學獲得的最高成績:
[sql]view plain
然後用如下的查詢語句完成查詢:
[sql]view plain
二、數據准備
1、員工表
[sql]view plain
插入數據:
[sql]view plain
插入的結果:
結果顯示插入失敗
對於with check option用法,總結如下:
通過有with check option選項的視圖操作基表(只是面對單表,對連接多表的視圖正在尋找答案),有以下結論: 插入後的數據,通過視圖能夠查詢出來就符合WITH CHECK OPTION 否則就不符合;
首先視圖只操作它可以查詢出來的數據,對於它查詢不出的數據,即使基表有,也不可以通過視圖來操作。
1.對於update,有with check option,要保證update後,數據要被視圖查詢出來
2.對於delete,有無with check option都一樣
4.對於insert,有with check option,要保證insert後,數據要被視圖查詢出來
對於沒有where 子句的視圖,使用with check option是多餘的
7、刪除視圖
[sql]view plain
等