c資料庫面試題 整理版

2021-05-21 22:06:50 字數 3397 閱讀 5133

二、問答題

1.維護資料庫的完整性、一致性、你喜歡用觸發器還是自寫業務邏輯?為什麼?

答:盡可能用約束(包括check、主鍵、唯一鍵、外來鍵、非空字段)實現,這種方式的效率最好;其次用觸發器,這種方式可以保證無論何種業務系統訪問資料庫都能維持資料庫的完整性、一致性;最後再考慮用自寫業務邏輯實現,但這種方式效率最低、程式設計最複雜,當為下下之策。

中常用的物件有哪些?分別描述一下。

答:connection 物件用於在應用程式和資料庫之間的連線

command 可以檢索和操縱資料庫中的資料

dataadapter物件充當dataset和資料來源之間用於檢索和儲存資料的橋接器

dataset 物件從資料庫檢索的資料可以儲存在其中能夠以xml形式儲存

datareader 是查詢結果的一種只進。唯讀的檢視不具有dataset的任何複雜功能

所以可以加快訪問和檢視資料的速度不提供斷開式訪問

3.datareader和dataset的異同?

答:datareader 和dataset最大的區別在於,datareader使用時始終占用sqlconnection,**運算元據庫..任何對sqlconnection 的操作都會引發datareader的異常..

因為datareader每次只在記憶體中載入一條資料,所以占用的記憶體是很小的..因為 datareader的特殊性和高效能.所以datareader是只進的..

你讀了第一條後就不能再去讀取第一條了..

dataset則是將資料一次性載入在記憶體中.拋棄資料庫連線..讀取完畢即放棄資料庫連線..

因為dataset將資料全部載入在記憶體中.所以比較消耗記憶體...但是確比datareader要靈活..

可以動態的新增行,列,資料.對資料庫進行回傳更新操作...

4.寫出一條sql語句: 取出表a中第31到第40記錄(sqlserver, 以自動增長的id作為主鍵, 注意:id可能不是連續的。)?

答:select top 10 * from a where id not in (select top 30 id from a)

解2: select top 10 * from a where id > (select max(id) from (select top 30 id from a )as a)

5.sqlserver伺服器中,給定表 table1 中有兩個字段 id、lastupdatedate,id表示更新的事務號, lastupdatedate表示更新時的伺服器時間,請使用一句sql語句獲得最後更新的事務號?

答:select id from table1 where lastupdatedate = (select max(lastupdatedate) from table1)

6. oracle中使用索引的理由

解答:快速訪問表中的data block

中級面試題:

一、選擇題

1.在對sql server 資料庫操作時應選用() 答案a

a)sql server .net framework 資料提供程式;

b)ole db .net framework 資料提供程式;

c)odbc .net framework 資料提供程式;

d)oracle .net framework資料提供程式;

2.下面敘述正確的是______。解答:c

a、演算法的執行效率與資料的儲存結構無關

b、演算法的空間複雜度是指演算法程式中指令(或語句)的條數

c、演算法的有窮性是指演算法必須能在執行有限個步驟之後終止

d、以上三種描述都不對

3.以下資料結構中不屬於線性資料結構的是______。答案為: c

a、佇列

b、線性表

c、二叉樹

d、棧4.在一棵二叉樹上第5層的結點數最多是______。答案為: b

a、8 b、16 c、32 d、15

下面描述中,符合結構化程式設計風格的是______。答案為: a

a、使用順序、選擇和重複(迴圈)三種基本控制結構表示程式的控制邏輯

b、模組只有乙個入口,可以有多個出口

c、注重提高程式的執行效率

d、不使用goto語句

二、問答題

1.什麼是觸發器?sql server 2000有什麼不同型別的觸發器?

答:觸發器是一種專用型別的儲存過程,它被**到sql server 2000的**或者檢視上。在sql server 2000裡,有instead-of和after兩種觸發器。

instead-of觸發器是替代資料操控語言(data manipulation language,dml)語句對**執行語句的儲存過程。

2.如何處理幾十萬條併發資料?

答:用儲存過程或事務。取得最大標識的時候同時更新..注意主鍵不是自增量方式這種方法併發的時候是不會有重複主鍵的..取得最大標識要有乙個儲存過程來獲取

3.sqlserver支援集群嗎?

支援,但是是屬於熱備份型別,不能做負載平衡。不過符合你的條件。

首先系統做集群,資料庫檔案放到磁碟陣列裡,雙機或多機共同訪問磁碟陣列,就可以了。

4.sqlserver中左聯接查詢用left join,oracle中用什麼?

左連線:select(nvl(a.c,0)-nvl(b.c,0)) from a,b where a.id(+)=b.id

右連線:select(nvl(a.c,0)-nvl(b.c,0)) from a,b where a.id=b.id(+)

自連線:select(nvl(a.c,0)-nvl(b.c,0)) from a,b where a.id(+)=b.id(+)

5.解釋oracle資料庫冷備份和熱備份的不同點以及各自的優點?

解答:熱備份針對歸檔模式的資料庫,在資料庫仍舊處於工作狀態時進行備份。而冷

備份指在資料庫關閉後,進行備份,適用於所有模式的資料庫。熱備份的優點在於當備份

時,資料庫仍舊可以被使用並且可以將資料庫恢復到任意乙個時間點。冷備份的優點在於

它的備份和恢復操作相當簡單,並且由於冷備份的資料庫可以工作在非歸檔模式下,資料庫

效能會比歸檔模式稍好。(因為不必將archive log寫入硬碟)

6.比較oracle資料庫中的 truncate和delete 命令?

解答:兩者都可以用來刪除表中所有的記錄。區別在於:

truncate是ddl操作,它移動hwk,不需要rollback segment .而delete是dml操作, 需要rollback segment 且花費較長時間.

7.解釋$oracle_home和$oracle_base的區別?

解答:oracle_base是oracle的根目錄,oracle_home是oracle產品的目錄

8.你必須利用備份恢復oracle資料庫,但是你沒有控制檔案,該如何解決問題呢?

解答:重建控制檔案,用帶backup control file 子句的recover 命令恢復資料庫。

資料庫DBA面試題 2019版 資料庫DBA

資料庫管理員dba筆試題目 姓名日期 1 oracle系統程序主要有哪些,作用是什麼?2 簡單描述table segment extent block之間的關係 3 sga主要有那些部分,主要作用是什麼?4 oracle資料庫備份可以分為哪幾類?5 歸檔是什麼含義,歸檔與備份有什麼不同?6 對於乙個...

資料庫面試題

維護資料庫的完整性 一致性 你喜歡用觸發器還是自寫業務邏輯?為什麼?答 盡可能用約束 包括check 主鍵 唯一鍵 外來鍵 非空字段 實現,這種方式的效率最好 其次用觸發器,這種方式可以保證無論何種業務系統訪問資料庫都能維持資料庫的完整性 一致性 最後再考慮用自寫業務邏輯實現,但這種方式效率最低 程...

資料庫面試題 SQL ORACLE

資料庫基礎 面試常見題 一 資料庫基礎 1.資料抽象 物理抽象 概念抽象 檢視級抽象,內模式 模式 外模式 2.sql語言包括資料定義 資料操縱 data manipulation 資料控制 data control 資料定義 create table,alter table,drop table,...