本書針對(duì)當(dāng)前各大典型IT企業(yè)面試筆試中的考點(diǎn)與側(cè)重點(diǎn),精心挑選了3年以來(lái)近百家IT企業(yè)的數(shù)據(jù)庫(kù)面試筆試真題,這些企業(yè)涉及業(yè)務(wù)包括系統(tǒng)軟件、搜索引擎、電子商務(wù)、手機(jī)APP、安全軟件等,非常具有代表性與參考性。同時(shí),本書對(duì)這些題目進(jìn)行了合理的劃分與歸類,并且對(duì)其進(jìn)行了庖丁解牛式的分析與講解,針對(duì)試題中涉及的部分重點(diǎn)難點(diǎn)問(wèn)題,本書都進(jìn)行了適當(dāng)?shù)財(cái)U(kuò)展與延伸,力求對(duì)知識(shí)點(diǎn)的講解清晰而不紊亂,全面而不啰嗦。此外,本書除了對(duì)數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)進(jìn)行深度剖析以外,還針對(duì)Oracle的筆試面試做了非常詳細(xì)的介紹。讀者通過(guò)學(xué)習(xí)本書不僅能夠獲取到求職的知識(shí),同時(shí)還能更有針對(duì)性地進(jìn)行求職準(zhǔn)備,終收獲一份滿意的工作。
本書是一本計(jì)算機(jī)相關(guān)專業(yè)畢業(yè)生面試、筆試的求職用書,同時(shí)也適合期望在計(jì)算機(jī)軟、硬件行業(yè)大顯身手的計(jì)算機(jī)愛(ài)好者閱讀。本書起于Oracle筆試面試,但講述的內(nèi)容不止筆試面試,還有更多的數(shù)據(jù)庫(kù)實(shí)用操作技能。書中采用大量圖表來(lái)解析對(duì)比相關(guān)的知識(shí)點(diǎn),讓很多常考的難點(diǎn)變得淺顯易懂。
在這里,有面試筆試常見(jiàn)技巧的提煉與總結(jié);
在這里,有面試筆試高頻Oracle數(shù)據(jù)庫(kù)知識(shí)點(diǎn)的整理與剖析;
在這里,有面試筆試歷年Oracle數(shù)據(jù)庫(kù)真題的解答與拓展。
程序員求職始終是當(dāng)前社會(huì)的一個(gè)熱點(diǎn),而市面上有很多關(guān)于程序員求職的書籍,例如《程序員代碼面試指南》、《劍指offer》、《程序員面試筆試寶典》、《Java程序員面試筆試寶典》、《編程之美》、《編程珠璣》等,它們都是針對(duì)基礎(chǔ)知識(shí)的講解,各有側(cè)重點(diǎn),而且在市場(chǎng)上反映良好,但是,我們發(fā)現(xiàn),當(dāng)前市面上沒(méi)有一本專門針對(duì)Oracle程序員的面試筆試寶典,很多讀者朋友們向我們反映,他們希望有一本能夠詳細(xì)剖析面試筆試中數(shù)據(jù)庫(kù)相關(guān)知識(shí)的圖書,雖然網(wǎng)絡(luò)上有一些IT企業(yè)的數(shù)據(jù)庫(kù)面試筆試真題,但這些題大都七零八湊,毫無(wú)系統(tǒng)性可言,而且絕大多數(shù)題目都是一些博主自己做的,答案簡(jiǎn)單,準(zhǔn)確性不高,即使偶爾答案正確了,也沒(méi)有詳細(xì)的講解,這就導(dǎo)致讀者做完了這些真題,根本就不知道自己做得是否正確,完全是徒勞。如果下一次這個(gè)題目再次被考查,自己還是不會(huì)。更有甚者,網(wǎng)上的答案很有可能是錯(cuò)誤的,此時(shí)甚至還會(huì)誤導(dǎo)讀者。
針對(duì)這種情況,本書創(chuàng)作團(tuán)隊(duì)經(jīng)過(guò)精心準(zhǔn)備,從互聯(lián)網(wǎng)上的海量數(shù)據(jù)庫(kù)面試筆試真題中,選取了當(dāng)前頂級(jí)企業(yè)(包括微軟、百度、騰訊、阿里巴巴、360、小米等)的面試筆試真題,挑選出其中最典型、考查頻率最高、最具代表性的真題,做到難度適宜,兼顧各層次讀者的需求,同時(shí)對(duì)真題進(jìn)行知識(shí)點(diǎn)的分門別類,做到層次清晰、條理分明、答案簡(jiǎn)單明了。最終形成了這樣一本《Oracle程序員面試筆試寶典》。本書特點(diǎn)鮮明,所選真題以及寫作手法具有以下特點(diǎn):
第一,考查率高:本書中所選真題全是數(shù)據(jù)庫(kù)程序員面試筆試?伎键c(diǎn),例如數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)與算法、海量數(shù)據(jù)處理等。
第二,行業(yè)代表性強(qiáng):本書中所選真題全部來(lái)自于頂級(jí)知名企業(yè),它們是行業(yè)的風(fēng)向標(biāo),代表了行業(yè)的高水準(zhǔn),其中絕大多數(shù)真題因?yàn)轭}目難易適中,而且具有非常好的區(qū)分度,通常會(huì)被眾多中小企業(yè)全盤照搬,具有代表性。
第三,答案詳盡:本書對(duì)每一道題目都有非常詳細(xì)的解答,庖丁解牛,不僅告訴答案,還告訴讀者同類型題目以后再遇到了該如何解答。
第四,分類清晰、調(diào)理分明:本書對(duì)各個(gè)知識(shí)點(diǎn)都進(jìn)行了分門別類,這種寫法有利于讀者針對(duì)個(gè)人實(shí)際情況做到有的放矢,重點(diǎn)把握。
由于圖書的篇幅所限,我們無(wú)法將所有的程序員面試筆試真題內(nèi)容都寫在書稿中,鑒于此,讀者可通過(guò)掃描封底計(jì)算機(jī)分社微信公眾號(hào)獲得相關(guān)資源的下載鏈接。此外,猿媛之家在官方網(wǎng)站(www.yuanyuanba.com)上提供了一個(gè)讀者交流平臺(tái),讀者朋友們可以在該網(wǎng)站上上傳各類面試筆試真題,也可以查找到自己所需要的知識(shí),同時(shí),讀者朋友們也可以向本平臺(tái)提供當(dāng)前最新、最熱門的程序員面試筆試題、面試技巧、程序員生活等相關(guān)材料。除此以外,我們還建立了微信公眾號(hào):猿媛之家,作為對(duì)外消息發(fā)布平臺(tái),以圖最大限度地滿足讀者需要。歡迎讀者關(guān)注探討新技術(shù)。
本書適合的讀者對(duì)象主要有如下幾類:
(1)剛畢業(yè)找工作的同學(xué),及從其他崗位轉(zhuǎn)數(shù)據(jù)庫(kù)崗位的人員。
(2)面試Oracle DBA初中級(jí)工作的人員。
(3)面試Oracle開發(fā)工作的人員。
(4)面試初級(jí)MySQL和初級(jí)SQL Server管理工作的人員。
(5)Oracle運(yùn)維人員。
(6)數(shù)據(jù)庫(kù)愛(ài)好者。
閱讀本書注意事項(xiàng)如下:
(1)由于篇幅原因,書中很多部分的實(shí)驗(yàn)內(nèi)容、部分實(shí)用代碼、部分結(jié)果或其他一些延伸性的知識(shí),我都寫在了隨書pdf文件里,大家可以在pdf文件中閱讀。還有部分內(nèi)容不適合在pdf里展現(xiàn)的,我都寫在了博客或微信公眾號(hào)中,并且在pdf文件中給出了鏈接地址。讀者若想了解更深層次的知識(shí),可以去鏈接地址閱讀。鏈接中給出的實(shí)驗(yàn)部分除非讀者已經(jīng)非常熟悉了,不然實(shí)驗(yàn)的內(nèi)容需要讀者親自動(dòng)手實(shí)踐,以便更深刻理解其中的知識(shí)點(diǎn)。需要注意的是,這些延伸性的知識(shí)點(diǎn)有可能在面試中也會(huì)出現(xiàn)。例如,本書中講解了ASMM和AMM的特性,但是并沒(méi)有講解有關(guān)大內(nèi)存頁(yè)的使用,而只是在小節(jié)后給出了相應(yīng)的鏈接文章,但是,在一些高級(jí)DBA的面試中,面試官也有可能詢問(wèn)有關(guān)大內(nèi)存頁(yè)的知識(shí)。所以,對(duì)于有能力的讀者,可以適當(dāng)閱讀研究一下這些知識(shí)點(diǎn)。
(2)數(shù)據(jù)庫(kù)中的知識(shí)繁多而復(fù)雜,本書只針對(duì)一些常見(jiàn)的重要知識(shí)點(diǎn)進(jìn)行分析,更多更細(xì)節(jié)的內(nèi)容可以參閱相關(guān)的官方文檔。
(3)本書中若沒(méi)有特殊說(shuō)明Oracle的版本的話,則默認(rèn)實(shí)驗(yàn)版本為11.2.0.3。
感謝在我們成長(zhǎng)道路上幫助我們的人,他們是父母、親人、同事、朋友、同學(xué)等,無(wú)論我們遇到了多大的挫折與困難,他們對(duì)我們都能不離不棄,一如既往地支持與幫助我們,使我們能夠開開心心地度過(guò)每一天。在此對(duì)以上所有人致以最衷心的感謝。
所有的成長(zhǎng)和偉大,如同中藥和老火湯,都是一個(gè)時(shí)辰一個(gè)時(shí)辰熬出來(lái)的,所有的好書,都是逐字逐句琢磨出來(lái)的。在技術(shù)的海洋里,我們不是創(chuàng)造者,但我們更愿意去當(dāng)好一名傳播者的角色,讓更多的求職者能夠通過(guò)本書的系統(tǒng)學(xué)習(xí),找到一份自己滿意的工作,實(shí)現(xiàn)自己的人生理想與抱負(fù)。
我們每個(gè)人的人生都是一場(chǎng)戲劇,我們每個(gè)人都要成為戲劇的主角,而不應(yīng)該淪為別人戲劇的配角,所以,我們建議所有的求職者在求職的道路上,無(wú)論遇到了多大的困難,遭遇了多大的挫折,都不要輕言放棄,你們的母?赡懿皇985、211,你們的學(xué)歷可能不是本科生、研究生,你們的專業(yè)可能也不是計(jì)算機(jī)相關(guān),但這些都不要緊,只要認(rèn)真努力,立志成為一名程序員,以我們輔導(dǎo)過(guò)的成千上萬(wàn)的求職者經(jīng)驗(yàn)而言,百分之九十以上的企業(yè)是完全可以求職成功的。請(qǐng)記。涸谶@個(gè)世界上,沒(méi)有人可以讓你仰視,除非你自己跪著。
由于編者水平有限,書中不足之處在所難免,還望讀者見(jiàn)諒。讀者如果發(fā)現(xiàn)問(wèn)題或是有此方面的困惑,都可以通過(guò)郵箱yuancoder@foxmail.com聯(lián)系我們。
猿媛之家
前言
上篇 面試筆試經(jīng)驗(yàn)技巧篇
第1章 求職經(jīng)驗(yàn)分享2
1.1 踩別人沒(méi)有踩過(guò)的坑,犯別人沒(méi)有犯過(guò)的錯(cuò)2
1.2 只要肯鉆研,就能成大咖3
1.3 普通DBA的逆襲經(jīng)驗(yàn)3
第2章 數(shù)據(jù)庫(kù)程序員的求職現(xiàn)狀5
2.1 當(dāng)前市場(chǎng)對(duì)于數(shù)據(jù)庫(kù)程序員的需求如何?待遇如何?5
2.2 數(shù)據(jù)庫(kù)程序員有哪些可供選擇的職業(yè)發(fā)展道路?6
2.3 當(dāng)企業(yè)在招聘時(shí),對(duì)數(shù)據(jù)庫(kù)程序員通常有何要求?6
2.4 數(shù)據(jù)庫(kù)程序員的日常工作是什么?7
2.5 要想成為一名出色的數(shù)據(jù)庫(kù)程序員,需要掌握哪些必備的知識(shí)?8
第3章 如何應(yīng)對(duì)程序員面試筆試?11
3.1 如何巧妙地回答面試官的問(wèn)題?11
3.2 如何回答技術(shù)性的問(wèn)題?12
3.3 如何回答非技術(shù)性問(wèn)題?13
3.4 被企業(yè)拒絕后是否可以再申請(qǐng)?14
3.5 如何應(yīng)對(duì)自己不會(huì)回答的問(wèn)題?14
3.6 如何應(yīng)對(duì)面試官的激將法語(yǔ)言?14
3.7 如何處理與面試官持不同觀點(diǎn)這個(gè)問(wèn)題?15
3.8 什么是職場(chǎng)暗語(yǔ)?15
下篇 面試筆試技術(shù)攻克篇
第4章 數(shù)據(jù)庫(kù)基礎(chǔ)20
4.1 為什么使用數(shù)據(jù)庫(kù)?20
4.2 數(shù)據(jù)庫(kù)的常見(jiàn)分類有哪些?20
4.3 關(guān)系型數(shù)據(jù)庫(kù)完整性規(guī)則24
4.4 數(shù)據(jù)庫(kù)的約束有哪些?25
4.5 什么是第一、二、三、BC范式?26
4.6 事務(wù)31
4.6.1 事務(wù)的概念及其4個(gè)特性是什么?31
4.6.2 事務(wù)的4種隔離級(jí)別(Isolation Level)分別是什么?32
4.7 鎖(Lock)33
4.7.1 基礎(chǔ)知識(shí)33
4.7.2 死鎖(DeadLock)34
4.8 存儲(chǔ)過(guò)程35
4.8.1 什么是存儲(chǔ)過(guò)程?它有什么優(yōu)點(diǎn)?35
4.8.2 存儲(chǔ)過(guò)程和函數(shù)的區(qū)別是什么?各自的作用是什么?37
4.9 觸發(fā)器的作用、優(yōu)缺點(diǎn)有哪些?37
4.10 什么是游標(biāo)?如何知道游標(biāo)已經(jīng)執(zhí)行到了最后?38
4.11 視圖39
4.11.1 什么是視圖?視圖的作用是什么?39
4.11.2 在什么情況下可以對(duì)視圖執(zhí)行增、刪、改操作?39
4.12 SQL語(yǔ)句有哪些常見(jiàn)的分類?40
4.13 SQL語(yǔ)言的數(shù)據(jù)查詢41
4.13.1 多表連接查詢42
4.13.2 笛卡爾積是什么?43
4.13.3 Top-N分析44
4.13.4 子查詢44
4.13.5 合并查詢(集合查詢)47
4.13.6 SQL:1999語(yǔ)法對(duì)SQL的支持47
4.13.7 WITH語(yǔ)法53
4.13.8 SQL部分練習(xí)題53
4.14 什么是SQL注入?56
4.15 索引(INDEX)56
4.15.1 索引的優(yōu)缺點(diǎn)與分類56
4.15.2 索引的分類57
4.16 熱備份和冷備份的區(qū)別是什么?58
4.17 什么是OLAP和OLTP?59
4.18 與OS相關(guān)的面試題60
4.18.1 接觸過(guò)哪些OS系統(tǒng)?常用命令有哪些?60
4.18.2 會(huì)寫SHELL腳本嗎?61
4.19 數(shù)據(jù)庫(kù)基礎(chǔ)部分其他真題解析61
第5章 Oracle數(shù)據(jù)庫(kù)63
5.1 開發(fā)類?贾R(shí)點(diǎn)63
5.1.1 Oracle的數(shù)據(jù)類型63
5.1.2 Oracle有哪些預(yù)定義角色?65
5.1.3 如何定義序列?其作用是什么?66
5.1.4 同義詞的定義及其作用是什么?67
5.1.5 Oracle中的視圖67
5.1.6 PL/SQL程序68
5.1.7 異常處理70
5.1.8 Oracle中的觸發(fā)器72
5.1.9 函數(shù)相關(guān)79
5.1.10 高級(jí)操作87
5.1.11 分區(qū)表93
5.1.12 NULL的注意事項(xiàng)98
5.1.13 樹形查詢(層次查詢)99
5.1.14 Oracle JOB100
5.1.15 SQL*Plus問(wèn)題102
5.1.16 如何判斷一個(gè)存儲(chǔ)過(guò)程是否正在運(yùn)行?103
5.1.17 如何將文本文件或Excel中的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)?103
5.1.18 開發(fā)類真題108
5.2 維護(hù)類?贾R(shí)點(diǎn)110
5.2.1 系統(tǒng)包110
5.2.2 Oracle對(duì)象112
5.2.3 體系結(jié)構(gòu)116
5.2.4 索引相關(guān)165
5.2.5 SQL優(yōu)化相關(guān)184
5.2.6 統(tǒng)計(jì)信息239
5.2.7 等待事件253
5.2.8 Oracle性能相關(guān)261
5.2.9 數(shù)據(jù)庫(kù)診斷279
5.2.10 會(huì)話294
5.2.11 ASM和RAC維護(hù)298
5.2.12 DG維護(hù)318
5.2.13 OGG維護(hù)332
5.2.14 備份恢復(fù)337
5.2.15 ASH/AWR/ADDM376
5.2.16 審計(jì)(Audit)386
5.2.17 網(wǎng)絡(luò)相關(guān)389
5.2.18 建庫(kù)與刪庫(kù)396
5.2.19 Oracle故障案例分析402
第6章 操作系統(tǒng)409
6.1 進(jìn)程管理409
6.1.1 進(jìn)程與線程有什么區(qū)別?409
6.1.2 內(nèi)核線程和用戶線程的區(qū)別?410
6.2 內(nèi)存管理410
6.2.1 內(nèi)存管理有哪幾種方式?410
6.2.2 什么是虛擬內(nèi)存?411
6.2.3 什么是內(nèi)存碎片?什么是內(nèi)碎片?什么是外碎片?411
6.2.4 虛擬地址、邏輯地址、線性地址、物理地址有什么區(qū)別?411
6.2.5 Cache替換算法有哪些?412
6.3 用戶編程接口413
6.3.1 庫(kù)函數(shù)調(diào)用與系統(tǒng)調(diào)用有什么不同?413
6.3.2 靜態(tài)鏈接與動(dòng)態(tài)鏈接有什么區(qū)別?414
6.3.3 靜態(tài)鏈接庫(kù)與動(dòng)態(tài)鏈接庫(kù)有什么區(qū)別?414
第7章 計(jì)算機(jī)網(wǎng)絡(luò)與通信415
7.1 網(wǎng)絡(luò)模型415
7.1.1 OSI七層模型是什么?415
7.1.2 TCP/IP模型是什么?416
7.1.3 B/S與C/S有什么區(qū)別?416
7.2 網(wǎng)絡(luò)設(shè)備417
7.2.1 交換機(jī)與路由器有什么區(qū)別?417
7.2.2 路由表的功能有哪些?417
7.3 網(wǎng)絡(luò)協(xié)議418
7.3.1 TCP和UDP的區(qū)別有哪些?418
7.3.2 什么是ARP/RARP?418
7.3.3 IP Phone的原理是什么?都用了哪些協(xié)議?419
7.3.4 Ping命令是什么?419
7.3.5 基本的HTTP流程有哪些?420
7.4 網(wǎng)絡(luò)其他問(wèn)題420
7.4.1 常用的網(wǎng)絡(luò)安全防護(hù)措施有哪些?420
7.4.2 相比IPv4,IPv6有什么優(yōu)點(diǎn)?421
第8章 面試筆試