面試題 資料庫

2021-06-27 13:48:28 字數 988 閱讀 9290

今天面試,遇到資料庫方面的問題,由於好久沒接觸過,很多都忘記了,回來查了資料,整理一下:
1、觸發器與儲存過程的區別

觸發器

是一種特殊型別的儲存過程,當使用下面的一種或多種資料修改操作在指定表中對資料進行修改時,觸發器會生效:update、insert 或 delete。觸發器可以查詢其它表,而且可以包含複雜的 sql 語句。它們主要用於強制複雜的業務規則或要求。例如,可以控制是否允許基於顧客的當前帳戶狀態插入定單。

觸發器還有助於強制引用完整性,以便在新增、更新或刪除表中的行時保留表之間已定義的關係。然而,強制引用完整性的最好方法是在相關表中定義主鍵和外來鍵約束。如果使用資料庫關係圖,則可以在表之間建立關係以自動建立外來鍵約束。有關詳細資訊,請參見表關係。

儲存過程

(stored procedure)是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件,任何乙個設計良好的資料庫應用程式都應該用到儲存過程。

觸發器與儲存過程的主要區別

在於觸發器的執行方式。儲存過程必須有使用者、應用程式或者觸發器來顯示的呼叫並執行,而觸發器是當特定時間出現的時候,自動執行或者啟用的,與連線用資料庫中的使用者、或者應用程式無關。當一行被插入、更新或者刪除時觸發器才執行,同時還取決於觸發器是怎樣建立的,當update發生時使用乙個更新觸發器,當insert發生時使用乙個插入觸發器,當delete發生時使用乙個刪除觸發器。

2、資料庫中左外連線和右外連線的區別

左外連線對連線條件中左邊的表不加限制,都會出現在結果集中,而右邊的表中只有滿足匹配條件的記錄才會出現在結果集中。

右外連線對連線條件中右邊的表不加限制,都會出現在結果集中,而左邊的表中只有滿足匹配條件的記錄才會出現在結果集中。

資料庫 面試題

正規化 第一正規化 1nf 所謂第一正規化 1nf 是指在關係模型中,所有的域都應該是原子性的,而不能是集合 陣列 記錄等非原子資料項。第二正規化 2nf 在1nf基礎上消除非主屬性對主碼的部分函式依賴。第三正規化 3nf 在2nf基礎上消除非主屬性對主碼的傳遞函式依賴。巴斯 科德正規化 bcnf ...

資料庫面試題

這個主要是給自己看的,答案都是網上搜的 乙個叫department的表,裡面只有乙個字段 name 一共有4條紀錄,分別是a,b,c,d,對應四個球對,現在四個球對進行比賽,用一條sql語句顯示所有可能的比賽組合 select a.name,b.name fromdepartment a,depar...

資料庫面試題

主鍵 超鍵 候選鍵 外來鍵 主鍵 資料庫表中對儲存資料物件予以唯一和完整標識的資料列或屬性的組合。乙個資料列只能有乙個主鍵,且主鍵的取值不能缺失,即不能為空值 null 超鍵 在關係中能唯一標識元組的屬性集稱為關係模式的超集。乙個屬性可以作為乙個超鍵,多個屬性組合在一起也可以作為乙個超鍵。超鍵包含候...