database面試題_1_第1頁
database面試題_1_第2頁
database面試題_1_第3頁
database面試題_1_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、database 面試題1 .什么是索引?SQL Server 2000里有什么類型的索引?任何有 經(jīng)驗(yàn)的數(shù)據(jù)庫開發(fā)人員都應(yīng)該能夠很輕易地回答這個(gè)問題。一些經(jīng)驗(yàn)不太多的開發(fā)人員能夠回答這個(gè)問題,但是有些地方會說不清楚。 簡 單地說,索引是一個(gè)數(shù)據(jù)結(jié)構(gòu),用來快速訪問數(shù)據(jù)庫表格或者視圖里 的數(shù)據(jù)。在SQL Server里,它們有兩種形式:聚集索引和非聚集索引。 聚集索引在索引的葉級保存數(shù)據(jù)。這意味著不論聚集索引里有表格的 哪個(gè)(或哪些)字段,這些字段都會按順序被保存在表格。由于存在這 種排序,所以每個(gè)表格只會有一個(gè)聚集索引。 非聚集索引在索引的葉 級有一個(gè)行標(biāo)識符。這個(gè)行標(biāo)識符是一個(gè)指向磁盤上數(shù)據(jù)

2、的指針。它 允許每個(gè)表格有多個(gè)非聚集索引。2 .NULL是什么意思? NULL(空)這個(gè)值是數(shù)據(jù)庫世界里一個(gè)非常難纏的東西,所以有不少應(yīng)聘者會在 這個(gè)問題上跌跟頭您也不要覺得意外。NULL這個(gè)值表示 UNKNOWN。:它不表示“”(空字符串)。假設(shè)您的SQL Server數(shù)據(jù) 庫里有ANSI_NULLS,當(dāng)然在默認(rèn)情況下會有,對 NULL這個(gè)值的 任何比較都會生產(chǎn)一個(gè)NULL值。您不能把任何值與一個(gè) UNKNOWN值進(jìn)行比較,并在邏輯上希望獲得一個(gè)答案。您必須使 用IS NULL操作符。3 .什么是主鍵?什么是外鍵?主鍵是表格里的 (一個(gè)或多個(gè))字段,只用來定義表格里的行;主鍵里的值總是唯一的

3、。 外鍵是一個(gè)用來建立兩個(gè)表格之間關(guān)系的約束。 這種關(guān)系一般都涉及一個(gè)表格里的主鍵字段與另外一個(gè)表格(盡管可能是同一個(gè)表格)里的一系列相連的字段。那么這些相連的字段就是外鍵。4.什么是觸發(fā)器?SQL Server 2000有什么不同類型的觸發(fā)器?讓未來的數(shù)據(jù)庫 開發(fā)人員知道可用的觸發(fā)器類型以及如何實(shí)現(xiàn)它們是非常有益的。 觸發(fā)器是一種專用類型的存儲過程,它被捆綁到SQL Server 2000的表格或者視圖上。在 SQL Server 2000里,有INSTEAD-OF和 AFTER兩種觸發(fā)器。INSTEAD-OF觸發(fā)器是替代數(shù)據(jù)操控語言(Data Manipulation Language,D

4、ML)語句對表格執(zhí)行語句的存儲過程。例如,如果我有一個(gè)用于 TableA的INSTEAD-OF-UPDATE 觸發(fā)器, 同時(shí)對這個(gè)表格執(zhí)行一個(gè)更新語句,那么INSTEAD-OF-UPDATE觸 發(fā)器里的代碼會執(zhí)行,而不是我執(zhí)行的更新語句則不會執(zhí)行操作。AFTER觸發(fā)器要在DML語句在數(shù)據(jù)庫里使用之后才執(zhí)行。這些類型 的觸發(fā)器對于監(jiān)視發(fā)生在數(shù)據(jù)庫表格里的數(shù)據(jù)變化十分好用。5 .您如何確一個(gè)帶有名為Fld1字段的TableB表格里只具有Fld1字段里 的那些值,而這些值同時(shí)在名為 TableA的表格的Fld1字段里?這 個(gè)與關(guān)系相關(guān)的問題有兩個(gè)可能的答案。第一個(gè)答案(而且是您希望聽到的答案)是使用

5、外鍵限制。外鍵限制用來維護(hù)引用的完整性。它 被用來確保表格里的字段只保存有已經(jīng)在不同的(或者相同的)表格里的另一個(gè)字段里定義了的值。這個(gè)字段就是候選鍵(通常是另外一個(gè)表格的主鍵)。另外一種答案是觸發(fā)器。觸發(fā)器可以被用來保證以 另外一種方式實(shí)現(xiàn)與限制相同的作用,但是它非常難設(shè)置與維護(hù),而且性能一般都很糟糕。由于這個(gè)原因,微軟建議開發(fā)人員使用外鍵限制而不是觸發(fā)器來維護(hù)引用的完整性。6.對一個(gè)投入使用的在線事務(wù)處理表格有過多索引需要有什么樣的性能考慮?您正在尋找進(jìn)行與數(shù)據(jù)操控有關(guān)的應(yīng)聘人員。對一個(gè)表格的索引越多,數(shù)據(jù)庫引擎用 來更新、插入或者刪除數(shù)據(jù)所需要的時(shí)間就越多,因?yàn)樵跀?shù)據(jù)操控發(fā)生的時(shí)候索引也

6、必須要維護(hù)。7 .您可以用什么來確保表格里的字段 只接受特定范圍里的值?這個(gè)問題可以用多種方式來回答,但是只有 一個(gè)答案是“好”答案。您希望聽到的回答是Check限制,它在數(shù)據(jù)庫表格里被定義,用來限制輸入該列的值。觸發(fā)器也可以被用來限 制數(shù)據(jù)庫表格里的字段能夠接受的值,但是這種辦法要求觸發(fā)器在表 格里被定義,這可能會在某些情況下影響到性能。因此,微軟建議使 用Check限制而不是其他的方式來限制域的完整性。返回參數(shù)和 OUTPUT參數(shù)之間的區(qū)別是什么?如果應(yīng)聘者能夠正確地回答這個(gè) 問題,那么他的機(jī)會就非常大了,因?yàn)檫@表明他們具有使用存儲過程 的經(jīng)驗(yàn)。返回參數(shù)總是由存儲過程返回,它用來表示存儲過

7、程是成功 還是失敗。返回參數(shù)總是INT數(shù)據(jù)類型。OUTPUT參數(shù)明確要求由 開發(fā)人員來指定,它可以返回其他類型的數(shù)據(jù),例如字符型和數(shù)值型 的值。(可以用作輸出參數(shù)的數(shù)據(jù)類型是有一些限制的。)您可以在一個(gè)存儲過程里使用多個(gè)OUTPUT參數(shù),而您只能夠使用一個(gè)返回參 數(shù)。8 .什么是相關(guān)子查詢?如何使用這些查詢?經(jīng)驗(yàn)更加豐富的開 發(fā)人員將能夠準(zhǔn)確地描述這種類型的查詢。相關(guān)子查詢是一種包含子查詢的特殊類型的查詢。查詢里包含的子查詢會真正請求外部查詢 的值,從而形成一個(gè)類似于循環(huán)的狀況。1、事務(wù)是什么?所謂事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個(gè)不可分割的工作單位。2、o

8、racle中truncate 和delete命令 有何區(qū)別? ( 1)delete將在回滾段中產(chǎn)生回滾信息,truncate不產(chǎn) 生,因此無論表中的記錄多少,truncate執(zhí)行都很快。(2)truncate 是DDL (數(shù)據(jù)庫定義語言,如 Create ,Drop,Grant,Revoke ),執(zhí)行 隱含的commit ,truncate不能回滾。任何沒有提交的DML (數(shù)據(jù)操縱語言 DML,如UpdatensertQelete )改變也將會和truncate 一起提交。(3)truncate 重置表及其索引高水位標(biāo)志high-watermark。全表掃描和索引快速全掃描讀高水位標(biāo)志下的所有

9、數(shù)據(jù)塊, 因此在delete后全掃描性能沒有提高,但truncate后將會變快。(4) truncate不觸發(fā)delete觸發(fā)器。(5)沒有對象權(quán)限允許一個(gè)用戶 truncate 另一個(gè)用戶的表。這樣做需要DROP ANY TABLE系統(tǒng)權(quán) 限。(6)當(dāng)一個(gè)表被truncate,表及其索引的存儲將被重置回初始 大小。而delete不收縮表及其索引的大小。(7)當(dāng)父表有一個(gè)可用 的引用完整性約束時(shí)不能被 truncate。必須先disable引用父表的 外鍵約束,再truncate。3、Oracle中char和varchar2 數(shù)據(jù)類型 有什么區(qū)別?有數(shù)據(jù)” test ”分別存放到char(10

10、)和varchar2(10) 類型的字段中,其存儲長度及類型有何區(qū)別? A: char是定長字符類 型,varchar2是變長字符類型?!皌est ”在char(10)中被補(bǔ)齊空格, 存儲長度是10字節(jié),在varchar2(10)中存儲長度是4字節(jié)。外關(guān)聯(lián) 的性能好于not exists,not exists 好于 not in。因?yàn)閿?shù)據(jù)庫在遇 到這兩種語句的時(shí)候是要把數(shù)據(jù)進(jìn)行一條一條的比對,如果in或者not in兩側(cè)的數(shù)據(jù)量在上萬條的時(shí)候,進(jìn)行比對的次數(shù)就是上億次, 很可能一個(gè)簡單的sql語句就要執(zhí)行半個(gè)小時(shí)以上。6、Oracle中, 需要在查詢語句中把空值(NULL )輸出為0,如何處理? selectnvl(c1,0) from t1; nvl函數(shù)從兩個(gè)表達(dá)式返回一個(gè)非

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論