常規技術面試題(數據庫)

1. 觸發器的作用?

觸發器是一個特殊的存儲過程,主要是通過事件來觸發而被執行的。

它可以強化約束,來維護數據的完整性和一致性,可以跟蹤數據庫內的操作從而不允許未經許可的更新和變化。

可以聯級運算。如,某表上的觸發器上包含對另一個表的數據操作,而該操作又會導致該表觸發器被觸發。

2. 什麼是存儲過程?用什麼來調用?

存儲過程是一個預編譯的SQL語句,優點是允許模塊化的設計,就是說只需創建一次,以後在程序中就可以調用多次。

如果某次操作需要執行多次SQL,使用存儲過程比單純SQL語句執行要快。可以用一個“execute 存儲過程名 參數”命令來調用存儲過程。

3. 索引的作用?和它的優點缺點是什麼?

索引就一種特殊的查詢表,數據庫的搜索引擎可以利用它加速對數據的檢索。

它很類似與現實生活中書的目錄,不需要查詢整本書內容就可以找到想要的數據。

索引可以是唯一的,創建索引允許指定單 個列或者是多個列。缺點是它減慢了數據錄入的速度,同時也增加了數據庫的尺寸大小。

4. 主鍵和索引的區別?

1.主鍵時爲了標識數據庫記錄唯一性,不允許記錄重複,且鍵值不能爲空,主鍵也是一個特殊索引;

2.數據表中只允許有一個主鍵,但是可以有多個索引;

3.使用主鍵數據庫會自動創建主索引,也可以在非主鍵上創建索引,方便查詢效率;

4.索引可以提高查詢速度,它就相當於字典的目錄,可以通過它很快查詢到想要的結果,而不需要進行全表掃描;

5.唯一索引則標識該索引值唯一,可以由一個或幾個字段組成,一個表可以有多個唯一索引。

5. 什麼是內存泄漏?

一般我們所說的內存泄漏指的是堆內存的泄漏。當應用程序用關鍵字new等創建對象時,就從堆中爲它分配一塊內存,使用完後由於某種原因程序未釋放或無法釋放,造成系統內存的浪費。導致程序運行速度減慢甚至系統崩潰等嚴重後果。

6. 維護數據庫的完整性和一致性,你喜歡用觸發器還是自寫業務邏輯?爲什麼?

我儘可能使用約束,如check,主鍵,外鍵,非空字段等來約束,這樣做效率最高,也最方便。

其次是使用觸發器,這種方法可以保證,無論什麼業務系統訪問數據庫都可以保證數據的完整新和一致性。

最後考慮的是自寫業務邏輯,但這樣做麻煩,編程複雜,效率低下。

7. 什麼是事務?

事務就是被綁定在一起作爲一個邏輯工作單元的SQL語句組,如果任何一個語句操作失敗那麼整個操作就被失敗,進而回滾到操作前狀態,或者是上個節點。

爲了確保要麼執行,要麼不執行,就可以使用事務。要將一組語句作爲事務考慮,就需要通過ACID測試,即原子性,一致性,隔離性和持久性

8. 什麼是鎖?

在所有的DBMS中,鎖是實現事務的關鍵,鎖可以保證事務的完整性和併發性。

與現實生活中鎖一樣,它可以使某些數據的擁有者,在某段時間內不能使用某些數據或數據結構。

當然鎖還分級別的。

9. 什麼叫視圖?

視圖是一種虛擬的表,具有和物理表相同的功能。可以對視圖進行增,改,查,操作,視圖通常是由一個表或者多個表的行或列的子集。它使得我們獲取數據更容易,相比多表查詢。

10. 視圖創建和使用語法?

1.首先判斷是否存在

if exists (select * from sysobjects where name = '視圖名')
drop view View_EdsProd 
Go

2.創建視圖

create view View_EdsProd as select * from Tab_EdsProd where Mid>1(條件) go

3. 使用視圖

select *from View_EdsProd

小劇場:一天十道題,簡單又快樂。Ten questions a day, simple and happy.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章