資料庫問題1

2021-10-23 10:10:08 字數 839 閱讀 3138

1.儲存過程和函式的區別

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

2.事務是什麼?

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

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

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

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

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

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

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

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

事前觸發器執行於觸發事件發生之前,而事後觸發器執行於觸發事件發生之後。通常事前觸發器可以獲取事件之前和新的字段值。語句級觸發器可以在語句執行前或後執行,而行級觸發在觸發器所影響的每一行觸發一次。

問題1 資料庫選型

關聯式資料庫 把資料組織為行,儲存在表上,是sql的基礎。作為幾十年的老產品,每個技術人員必須掌握的技術。關聯式資料庫最大優點是實現acid 原子性,一致性,隔離性,永續性 原則,一般要求強事務型別業務,都要使用關聯式資料庫儲存。典型代表,mysql 開源,要求dba技能高 oracle 功能強悍,...

資料庫基本問題1

1.外來鍵 外來鍵引用的那個列在主表中必須是主鍵列或者唯一列。所以1 n的肯定把外來鍵建立在n的那張表上。1 1,一般要看誰是主表,誰是附屬表,外來鍵當然建立在附屬表中。n m的情況,需要建立乙個關係表,兩個原表和其關係分別是1 n,1 m 2.select sql語句對大小寫不敏感!所以不要浪費時...

資料庫 1 初始 資料庫

alpha版 一般只在開發公司內部使用,不對外公開,測試 自我檢查的版本 beta版 一般是開發完也測試完的版本,一般不會出現比較大的效能bug 一般我們不用,阿里 去哪兒會使用這個版本,有些新功能,內部有高手能調,也能評估新功能的效能 rc版 根據beta版測試之後收集到一些bug等在進行完善的乙...