最近參加了4、5場面試,總結一下競聘oracle 開發崗位最常問到哪些問題:
1、delete 與 truncate 區別?
1)truncate 是DDL語句,delete 是DML語句;
2)truncate 速度遠快於 delete;
原因是:當我們執行delete操作時所有表數據先被copy到回滾表空間,數據量不同花費時間長短不一。而truncate是直接刪除數據不進回滾表空間。
3)接(2)這也就導致了delete數據後我們可以運行rollback進行數據回滾,而truncate則是永久刪除不能回滾;
4)truncate 操作不會觸發表上的delete觸發器,而delete會正常觸發;
5)truncate語句不能帶where條件意味著只能全部數據刪除,而delete可刪除部分數據;
6)truncate 操作會重置表的高水位線(High Water Mark),而delete不會。
ps: 有關高水位線HWM知識清參考文章:http://blog.csdn.net/indexman/article/details/25910255
2、解釋一下數據庫三范式?
請參考:http://blog.csdn.net/indexman/article/details/19907731
敬請期待!
------------------------------
Dylan Presents.