關系型數據庫(八),數據庫其他面試題
目錄
1.SQL語句的功能有那些
2.內連接和外連接的區別
3.什麽是存儲過程,它與函數有什麽區別?
4.各種範式級別
5.什麽是觸發器
八、數據庫其他面試題
1.SQL語句的功能有那些
(1)數據查詢
Select-選擇符合條件的記錄
(2)數據操縱
Insert-插入一條記錄
Update-更新記錄
Delete-刪除記錄
(3)數據定義
Create-數據表的建立
Drop-數據表的刪除
(4)數據控制
Grant-為用戶授予系統權限
Revoke-收回系統權限
2.內連接和外連接的區別
(1)內連接,內連接即自然連接
(2)左外連接
(3)右連接
(4)全外連接
MYSQL不支持全外連接
推薦:https://blog.csdn.net/plg17/article/details/78758593
3.什麽是存儲過程,它與函數有什麽區別?
SQL語句在執行時要先編譯,然後再被執行。在大型數據庫系統中,為了提高效率,將為了完成指定功能的SQL語句進行編譯優化後,存儲在數據庫服務器中,用戶通過指定存儲過程的名字來調用執行。
使用存儲過程可以增強SQL語句的功能和靈活性,由於可以用流程控制語句編寫存儲過程,有很強的靈活性,因此可以完成復雜的判斷和運算,並且可以保證數據的安全性和完整性。同時,存儲過程可以使沒有權限的用戶在控制之下間接地存取數據庫,也保證了數據的安全。
4.各種範式級別
(1)1NF:每個元素不可再分
(2)2NF:消除非主屬性部分依賴
(3)3NF:消除非主屬性轉遞依賴
(4)BCNF:消除主屬性傳遞依賴
5.什麽是觸發器
(1)觸發器簡介
觸發器是一種特殊的存儲過程,它由事件觸發,而不是程序調用或手工啟動,當數據庫有特殊的操作時,這些操作由數據庫中的事件來觸發,自動完成這些SQL語句。使用觸發器可以用來保證數據的有效性和完整性,完成比約束更復雜的數據約束。
(2)觸發器和存儲過程的區別
觸發器 |
存儲過程 |
當某類數據操縱DML語句發生時隱式的調用 |
從一個應用或者過程中顯示的調用 |
在觸發器體內禁止使用commit |
在過程體內可以使用所有PL/SQL塊中都能使用的SQL語句,包括commit和rollback語句 |
不接受參數輸入 |
可以接受參數輸入 |
(3)觸發器的主要作用
- 增加安全性。
- 利用觸發器記錄所進行的修改以及相關信息跟蹤用戶對數據庫的操作,完成審計。
- 維護那些通過創建表時的聲明約束不可能實現的復雜的完整性約束以及對數據庫中特定時間進行監控與相應。
- 實現復雜的非標準的數據庫相關完整性規則、同步實時的負責表中的數據。
- 觸發器是自動的,它們對表的數據做了任何的修改之後就會被激活
關系型數據庫(八),數據庫其他面試題