數據庫面試題及答案
面試是通過(guò)書(shū)面、面談或線(xiàn)上交流(視頻、電話(huà))的形式來(lái)考察一個(gè)人的工作能力與綜合素質(zhì),通過(guò)面試可以初步判斷應聘者是否可以融入自己的團隊。是一種經(jīng)過(guò)組織者精心策劃的招聘活動(dòng)。在特定場(chǎng)景下,以面試官對應聘者的交談與觀(guān)察為主要手段,由表及里測評應聘者的知識、能力、經(jīng)驗和綜合素質(zhì)等有關(guān)素質(zhì)的考試活動(dòng)。面試是公司挑選職工的一種重要方法。
Oracle數據庫的面試題目及答案
基礎題目:
1. 比較truncate和 命令
解答:兩者都可以用來(lái)刪除表中所有的記錄。區別在于:truncate是DDL操作,它移動(dòng)HWK,不需要 rollback segment .
而Delete是DML操作, 需要rollback segment 且花費較長(cháng)時(shí)間.
【相同點(diǎn)
truncate和不帶where子句的, 以及drop都會(huì )刪除表內的數據
不同點(diǎn):
1. truncate和 只刪除數據不刪除表的結構(定義)
drop語(yǔ)句將刪除表的結構被依賴(lài)的'約束(constrain),觸發(fā)器(trigger),索引(index); 依賴(lài)于該表的存儲過(guò)程/函數將保留,
但是變?yōu)閕nvalid狀態(tài).
2.語(yǔ)句是dml,這個(gè)操作會(huì )放到rollback segement中,事務(wù)提交之后才生效;如果有相應的trigger,執行的時(shí)候將被觸發(fā).
truncate,drop是ddl, 操作立即生效,原數據不放到rollback segment中,不能回滾. 操作不觸發(fā)trigger.
3.語(yǔ)句不影響表所占用的extent, 高水線(xiàn)(high watermark)保持原位置不動(dòng)
顯然drop語(yǔ)句將表所占用的空間全部釋放
truncate 語(yǔ)句缺省情況下見(jiàn)空間釋放到 minextents個(gè) extent,除非使用reuse storage; truncate會(huì )將高水線(xiàn)復位(回到最開(kāi)始).
NIIT認證數據庫面試題及答案
1. 存儲過(guò)程和函數的區別
存儲過(guò)程是用戶(hù)定義的一系列sql語(yǔ)句的集合,涉及特定表或其它對象的任務(wù),用戶(hù)可以調用存儲過(guò)程,而函數通常是數據庫已定義的方法,它接收參數并返回某種類(lèi)型的值并且不涉及特定用戶(hù)表。
2. 事務(wù)是什么?
事務(wù)是作為一個(gè)邏輯單元執行的'一系列操作,一個(gè)邏輯工作單元必須有四個(gè)屬性,稱(chēng)為 ACID(原子性、一致性、隔離性和持久性)屬性,只有這樣才能成為一個(gè)事務(wù):
原子性
事務(wù)必須是原子工作單元;對于其數據修改,要么全都執行,要么全都不執行。
一致性
事務(wù)在完成時(shí),必須使所有的數據都保持一致?tīng)顟B(tài)。在相關(guān)數據庫中,所有規則都必須應用于事務(wù)的修改,以保持所有數據的完整性。事務(wù)結束時(shí),所有的內部數據結構(如 B 樹(shù)索引或雙向鏈表)都必須是正確的。
隔離性
由并發(fā)事務(wù)所作的修改必須與任何其它并發(fā)事務(wù)所作的修改隔離。事務(wù)查看數據時(shí)數據所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不會(huì )查看中間狀態(tài)的數據。這稱(chēng)為可串行性,因為它能夠重新裝載起始數據,并且重播一系列事務(wù),以使數據結束時(shí)的狀態(tài)與原始事務(wù)執行的狀態(tài)相同。
持久性
事務(wù)完成之后,它對于系統的影響是永久性的。該修改即使出現系統故障也將一直保持。
3. 游標的作用?如何知道游標已經(jīng)到了最后?
游標用于定位結果集的行,通過(guò)判斷全局變量@@FETCH_STATUS可以判斷是否到了最后,通常此變量不等于0表示出錯或到了最后。