天天看點

SQL一些問題2

1.觸發器的作用?

答:觸發器是一中特殊的存儲過程,主要是通過事件來觸發而被執行的。它可以強化限制,來維護資料的完整性和一緻性,

可以跟蹤資料庫内的操作進而不允許未經許可的更新和變化。可以聯級運算。如,某表上的觸發器上包含對另一個表的資料操作,而該操作又會導緻該表觸發器被觸發。

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

答:存儲過程是一個預編譯的sql語句,優點是允許子產品化的設計,就是說隻需建立一次,以後在該程式中就可以調用多次。如果某次操作需要執行多次sql,

使用存儲過程比單純sql語句執行要快。可以用一個指令對象來調用存儲過程。

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

答:索引就一種特殊的查詢表,資料庫的搜尋引擎可以利用它加速對資料的檢索。它很類似與現實生活中書的目錄,不需要查詢整本書内容就可以找到想要的資料。

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

3。什麼是記憶體洩漏?

答:一般我們所說的記憶體洩漏指的是堆記憶體的洩漏。堆記憶體是程式從堆中為其配置設定的,大小任意的,使用完後要顯示釋放記憶體。

當應用程式用關鍵字new等建立對象時,就從堆中為它配置設定一塊記憶體,使用完後程式調用free或者delete釋放該記憶體,否則就說該記憶體就不能被使用,我們就說該記憶體被洩漏了。

4。維護資料庫的完整性和一緻性,你喜歡用觸發器還是自寫業務邏輯?為什麼?

答:我是這樣做的,盡可能使用限制,如check,主鍵,外鍵,非空字段等來限制,這樣做效率最高,也最友善。其次是使用觸發器,

這種方法可以保證,無論什麼業務系統通路資料庫都可以保證資料的完整新和一緻性。最後考慮的是自寫業務邏輯,但這樣做麻煩,程式設計複雜,效率低下。

5。什麼是事務?什麼是鎖?

答:事務就是被綁定在一起作為一個邏輯工作單元的sql語句分組,如果任何一個語句操作失敗那麼整個操作就被失敗,以後操作就會復原到操作前狀态,

或者是上有個節點。為了確定要麼執行,要麼不執行,就可以使用事務。要将有組語句作為事務考慮,就需要通過acid測試,即原子性,一緻性,隔離性和持久性。

鎖:在是以的dbms中,鎖是實作事務的關鍵,鎖可以保證事務的完整性和并發性。與現實生活中鎖一樣,它可以使某些資料的擁有者,

在某段時間内不能使用某些資料或資料結構。當然鎖還分級别的。

6。什麼叫視圖?遊标是什麼?

答:視圖是一種虛拟的表,具有和實體表相同的功能。可以對視圖進行增,改,查,操作,試圖通常是有一個表或者多個表的行或列的子集。

對視圖的修改不影響基本表。它使得我們擷取資料更容易,相比多表查詢。

遊标:是對查詢出來的結果集作為一個單元來有效的處理。遊标可以定在該單元中的特定行,從結果集的目前行檢索一行或多行。

可以對結果集目前行做修改。一般不使用遊标,但是需要逐條處理資料的時候,遊标顯得十分重要。

本文出自 “” 部落格,請務必保留此出處