1. 程式人生 > >java常見面試題:Java程式設計師面試題(五)

java常見面試題:Java程式設計師面試題(五)

本期的java面試題是偏向資料庫方面的,對相關技術知識匱乏的,或者對這方面不大自信的同學,面試之前可以參考一下這套題,這只是節選,試運營一下,如果不能滿足你們的需求,可以直接評論留言!

1、檢視的優缺點

答:優點: 1)對資料庫的訪問,因為檢視可以有選擇性的選取資料庫裡的一部分。 2 )使用者通過簡單的查詢可以從複雜查詢中得到結果。 3 )維護資料的獨立性,試圖可從多個表檢索資料。 4 )對於相同的資料可產生不同的檢視。 缺點: 效能:查詢檢視時,必須把檢視的查詢轉化成對基本表的查詢,如果這個檢視是由一個複雜的多表查詢所定義,那麼就無法更改資料。

2、在資料庫中查詢語句速度很慢,如何優化?

答:1.建索引 2.減少表之間的關聯 3.優化sql,儘量讓sql很快定位資料,不要讓sql做全表查詢,應該走索引,把資料量大的表排在前面 4.簡化查詢欄位,沒用的欄位不要,已經對返回結果的控制,儘量返回少量資料 5.儘量用PreparedStatement來查詢,不要用Statement

3、資料庫三正規化是什麼?

答:第一正規化:列不可再分 第二正規化:行可以唯一區分,主鍵約束 第三正規化:表的非主屬性不能依賴與其他表的非主屬性 外來鍵約束 且三大正規化是一級一級依賴的,第二正規化建立在第一正規化上,第三正規化建立第一第二正規化上

4、union和union all有什麼不同?

答:UNION在進行錶鏈接後會篩選掉重複的記錄,所以在錶鏈接後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用中是不會產生重複的記錄,常見的是過程表與歷史表UNION。 UNION ALL只是簡單的將兩個結果合併後就返回。這樣,如果返回的兩個結果集中有重複的資料,那麼返回的結果集就會包含重複的資料了。 從效率上說,UNION ALL 要比UNION快很多,所以,如果可以確認合併的兩個結果集中不包含重複的資料的話,那麼就使用UNION ALL。

5、Varchar2和varchar有什麼區別?

答:Char的長度是固定的,而varchar2的長度是可以變化的,比如,儲存字串“abc”對於char(20),表示你儲存的字元將佔20個位元組,包含17個空,而同樣的varchar2(20)只佔了3個位元組,20只是最大值,當你儲存的字元小於20時,按實際長度儲存。 char的效率要被varchar2的效率高。

目前varchar是varchar2的同義詞,工業標準的varchar型別可以儲存空字串,但是oracle不能這樣做,儘管它保留以後這樣做的權利。Oracle自己開發了一個數據型別varchar2,這個型別不是一個標準的varchar,他將在資料庫中varchar列可以儲存空字串的特性改為儲存null值,如果你想有向後相容的能力,oracle建議使用varchar2而不是varchar。

未完待續……