資料庫方面常見面試題

2021-05-23 00:52:16 字數 1062 閱讀 5333

1、說出資料連線池的工作機制是什麼

j2ee 伺服器啟動時會建立一定數量的池連線,並一直維持不少於此數目的池連線。客戶端程式需要連線時,池驅動程式會返回乙個未使用的池連線並將其表記為忙。如果當前沒有空閒連線,池驅動程式就新建一定數量的連線,新建連線的數量有配置引數決定。當使用的池連線呼叫完成後,池驅動程式將此連線表記為空閒,其他呼叫就可以使用這個連線。

2、儲存過程和函式的區別

儲存過程是使用者定義的一系列sql語句的集合,涉及特定表或其它物件的任務,使用者可以呼叫儲存過程,而函式通常是資料庫已定義的方法,它接收引數並返回某種型別的值並且不涉及特定使用者表。

3、事務是什麼?

事務是作為乙個邏輯單元執行的一系列操作,乙個邏輯工作單元必須有四個屬性,稱為 acid(原子性、一致性、隔離性和永續性)屬性,只有這樣才能成為乙個事務:

原子性:

事務必須是原子工作單元;對於其資料修改,要麼全都執行,要麼全都不執行。

一致性:

事務在完成時,必須使所有的資料都保持一致狀態。在相關資料庫中,所有規則都必須應用於事務的修改,以保持所有資料的完整性。事務結束時,所有的內部資料結構(如 b 樹索引或雙向鍊錶)都必須是正確的。

隔離性:

由 併發事務所作的修改必須與任何其它併發事務所作的修改隔離。事務檢視資料時資料所處的狀態,要麼是另一併發事務修改它之前的狀態,要麼是另一事務修改它之 後的狀態,事務不會檢視中間狀態的資料。這稱為可序列性,因為它能夠重新裝載起始資料,並且重播一系列事務,以使資料結束時的狀態與原始事務執行的狀態相 同。

永續性事務完成之後,它對於系統的影響是永久性的。該修改即使出現系統故障也將一直保持。

4、游標的作用?如何知道游標已經到了最後?

游標用於定位結果集的行,通過判斷全域性變數@@fetch_status可以判斷是否到了最後,通常此變數不等於0表示出錯或到了最後

5、觸發器分為事前觸發和事後觸發,這兩種觸發有和區別。語句級觸發和行級觸發有何區別?

事前觸發器執行於觸發事件發生之前,而事後觸發器執行於觸發事件發生之後。通常事前觸發器可以獲取事件之前和新的字段值。

語句級觸發器可以在語句執行前或後執行,而行級觸發在觸發器所影響的每一行觸發一次

資料庫常見面試題

1.事務的四大特性acid 1 原子性 事務包含的操作要麼全部成功,要麼全部回退。2 一致性 事務開始前和開始後,資料庫的完整性沒有被破壞。舉例 轉賬 3 隔離性 對資料庫進行併發操作時,事務不能被其他事務干擾。4 永續性 事務一旦提交,對資料庫的影響是永久的。2.事務的併發 包含3類資料讀和2類資...

資料庫其他常見面試題

一般情況只發生鎖超時,就是乙個程序需要訪問資料庫表或者欄位的時候,另外乙個程式正在執行帶鎖的訪問 比如修改資料 那麼這個程序就會等待,當等了很久鎖還沒有解除的話就會鎖超時,報告乙個系統錯誤,拒絕執行相應的sql操作。發生死鎖的情況比較少,比如乙個程序需要訪問兩個資源 資料庫表或者字段 當獲取乙個資源...

資料庫部分常見面試題

事務的四大特性 acid 原子性原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾。一致性一致性是指事務必須是資料庫從乙個一致性狀態變換到另乙個一致性狀態,也就是說乙個事務執行之前和執行之後都必須處於一致性狀態。拿轉賬來說,假設使用者a和使用者b兩者的錢加起來一共是5000,那麼不管a和b之...