關(guān)于我們
書單推薦
新書推薦
|
數(shù)據(jù)庫(kù)程序員面試筆試寶典
《數(shù)據(jù)庫(kù)程序員面試筆試寶典》針對(duì)當(dāng)前各大 IT 企業(yè)面試筆試的特性與側(cè)重點(diǎn),精心挑選了近3年以來(lái)近百家 IT 企業(yè)的數(shù)據(jù)庫(kù)面試筆試真題,這些企業(yè)涉及的業(yè)務(wù)包括系統(tǒng)軟件、搜索引擎、電子商務(wù)、手機(jī)App、安全關(guān)鍵軟件等,面試筆試真題非常具有代表性與參考性。同時(shí),《數(shù)據(jù)庫(kù)程序員面試筆試寶典》對(duì)這些題目進(jìn)行了合理的劃分與歸類,并且對(duì)其進(jìn)行了庖丁解牛式的分析與講解。針對(duì)試題中涉及的部分重難點(diǎn)問(wèn)題,本書都進(jìn)行了適當(dāng)?shù)財(cái)U(kuò)展與延伸,力求對(duì)知識(shí)點(diǎn)的講解清晰而不紊亂,全面而不啰嗦,不僅如此,《數(shù)據(jù)庫(kù)程序員面試筆試寶典》除了對(duì)數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)進(jìn)行深度剖析以外,還針對(duì)Oracle、MySQL、SQL Server等常見(jiàn)數(shù)據(jù)庫(kù)的筆試面試做了非常詳細(xì)的介紹。
《數(shù)據(jù)庫(kù)程序員面試筆試寶典》是一本計(jì)算機(jī)相關(guān)專業(yè)畢業(yè)生面試、筆試的求職用書,同時(shí)也適合期望在計(jì)算機(jī)軟、硬件行業(yè)大顯身手的計(jì)算機(jī)愛(ài)好者閱讀。
在這里,有面試筆試常見(jiàn)技巧的提煉與總結(jié);
在這里,有面試筆試高頻數(shù)據(jù)庫(kù)知識(shí)點(diǎn)的整理與剖析; 在這里,有面試筆試歷年數(shù)據(jù)庫(kù)真題的解答與拓展。
程序員求職始終是當(dāng)前社會(huì)的一個(gè)熱點(diǎn),而市面上有很多關(guān)于程序員求職的書籍都是針對(duì)基礎(chǔ)知識(shí)的講解,沒(méi)有一本專門針對(duì)數(shù)據(jù)庫(kù)程序員的面試筆試寶典。雖然網(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)單明了。本書特點(diǎn)鮮明,所選真題以及寫作手法具有以下特點(diǎn)。 第一,考察率高:本書中所選真題全是數(shù)據(jù)庫(kù)程序員面試筆試常考點(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ì)的解答,不只是告訴讀者答案,還提供了詳細(xì)的講解。 第四,分類清晰、調(diào)理分明:本書對(duì)各個(gè)知識(shí)點(diǎn)都進(jìn)行了分門別類的歸納,這種寫法有利于讀者針對(duì)個(gè)人實(shí)際情況做到有的放矢、重點(diǎn)把握。 由于圖書的篇幅所限,我們無(wú)法將所有的程序員面試筆試真題內(nèi)容都寫在書稿中,鑒于此,我們?cè)虫轮以诠俜骄W(wǎng)站(www.yuanyuanba.com)上提供了一個(gè)讀者交流平臺(tái),讀者可以在該網(wǎng)站上傳各類面試筆試真題,也可以查找到自己所需要的知識(shí),同時(shí),讀者也可以向本平臺(tái)提供當(dāng)前最新、最熱門的程序員面試筆試題、面試技巧、程序員生活等相關(guān)材料。除此以外,我們還建立了公眾號(hào):猿媛之家,作為對(duì)外消息發(fā)布平臺(tái),以最大限度地滿足讀者需要。 本書適合的讀者對(duì)象主要有如下幾類: 剛畢業(yè)找工作的同學(xué),及從其它崗位轉(zhuǎn)數(shù)據(jù)庫(kù)崗位的人員 面試Oracle DBA初中級(jí)工作的人員 面試Oracle開(kāi)發(fā)工作的人員 面試初級(jí)MySQL和初級(jí)SQL Server管理工作的人員 Oracle運(yùn)維人員 數(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。 在本書的編寫過(guò)程中,得到了楊偉豪、劉雪梅、楚沔西、秦榆、夏男穎、劉鵬、楊建榮的幫助,在此深表感謝。 由于編者水平有限,書中不足之處在所難免,還望讀者見(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ò)的路2 1.2 一只小白成長(zhǎng)為DBA的心路歷程3 1.3 一個(gè)熱衷于SQL優(yōu)化的DBA成長(zhǎng)經(jīng)歷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ā)展道路?5 2.3 當(dāng)企業(yè)在招聘時(shí),對(duì)數(shù)據(jù)庫(kù)程序員通常有何要求?5 2.4 數(shù)據(jù)庫(kù)程序員的日常工作是什么?7 2.5 要想成為一名出色的數(shù)據(jù)庫(kù)程序員,需要掌握哪些必備的知識(shí)?8 2.6 各類數(shù)據(jù)庫(kù)求職及市場(chǎng)使用情況9 第3章 如何應(yīng)對(duì)程序員面試筆試?12 3.1 如何巧妙地回答面試官的問(wèn)題?12 3.2 如何回答技術(shù)性問(wèn)題?12 3.3 如何回答非技術(shù)性問(wèn)題?14 3.4 在被企業(yè)拒絕后是否可以再申請(qǐng)?15 3.5 如何應(yīng)對(duì)自己不會(huì)回答的問(wèn)題?15 3.6 如何應(yīng)對(duì)面試官的“激將法”語(yǔ)言?15 3.7 如何處理與面試官持不同觀點(diǎn)這個(gè)問(wèn)題?16 3.8 什么是職場(chǎng)暗語(yǔ)?16 下篇 面試筆試技術(shù)攻克篇 第4章 數(shù)據(jù)庫(kù)基礎(chǔ)21 4.1 為什么使用數(shù)據(jù)庫(kù)?21 4.2 數(shù)據(jù)庫(kù)系統(tǒng)有哪幾類數(shù)據(jù)模型結(jié)構(gòu)?21 4.3 關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)與文件系統(tǒng)有什么區(qū)別?22 4.4 數(shù)據(jù)庫(kù)系統(tǒng)的組成與結(jié)構(gòu)有哪些?23 4.5 數(shù)據(jù)庫(kù)系統(tǒng)的主要特點(diǎn)有哪些?24 4.6 試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用、常用數(shù)據(jù)模型的分類和數(shù)據(jù)模型的三個(gè)要素25 4.7 數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程包括哪幾個(gè)主要階段?數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì)在生存期中的地位如何?26 4.8 范式27 4.8.1 第一、二、三、BC范式28 4.8.2 反范式31 4.9 關(guān)系型數(shù)據(jù)庫(kù)完整性規(guī)則31 4.10 數(shù)據(jù)庫(kù)的約束都有哪些?32 4.11 事務(wù)34 4.11.1 事務(wù)的概念及其4個(gè)特性是什么?34 4.11.2 事務(wù)的分類35 4.11.3 什么是XA事務(wù)?36 4.11.4 事務(wù)的4種隔離級(jí)別(Isolation Level)分別是什么?36 4.11.5 Oracle、MySQL和SQL Server中的事務(wù)隔離級(jí)別37 4.12 什么是CAP定理?38 4.13 什么是數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)和二級(jí)映像?39 4.14 什么是數(shù)據(jù)庫(kù)三級(jí)封鎖協(xié)議?40 4.15 什么是兩段鎖協(xié)議?41 4.16 鎖41 4.16.1 基礎(chǔ)知識(shí)41 4.16.2 更新丟失41 4.16.3 悲觀鎖和樂(lè)觀鎖42 4.16.4 鎖的分類42 4.16.5 Oracle中的鎖43 4.16.6 死鎖50 4.16.7 什么是MVCC?52 4.17 存儲(chǔ)過(guò)程53 4.17.1 什么是存儲(chǔ)過(guò)程?它有什么優(yōu)點(diǎn)?53 4.17.2 存儲(chǔ)過(guò)程和函數(shù)的區(qū)別是什么?54 4.18 觸發(fā)器的作用、優(yōu)缺點(diǎn)有哪些?54 4.19 什么是游標(biāo)?如何知道游標(biāo)已經(jīng)到了最后?55 4.20 視圖56 4.20.1 什么是視圖?視圖的作用是什么?56 4.20.2 在什么情況下可以對(duì)視圖執(zhí)行增加、刪除、修改操作?56 4.20.3 Oracle中的視圖57 4.21 SQL語(yǔ)句有哪些常見(jiàn)的分類?58 4.22 SQL語(yǔ)言的數(shù)據(jù)查詢60 4.22.1 多表連接查詢61 4.22.2 笛卡兒積是什么?62 4.22.3 TopN分析62 4.22.4 子查詢63 4.22.5 合并查詢(集合查詢)66 4.22.6 SQL:1999語(yǔ)法對(duì)SQL的支持69 4.22.7 WITH語(yǔ)法74 4.22.8 SQL部分練習(xí)題75 4.23 什么是SQL注入?79 4.24 索引79 4.24.1 索引的優(yōu)缺點(diǎn)80 4.24.2 索引的分類81 4.24.3 聚集索引是什么?在哪些列上適合創(chuàng)建聚集索引?82 4.24.4 單列索引和復(fù)合索引83 4.24.5 函數(shù)索引84 4.24.6 位圖索引84 4.24.7 分區(qū)索引85 4.24.8 什么是覆蓋索引?87 4.24.9 虛擬索引88 4.24.10 不可見(jiàn)索引90 4.24.11 Oracle中的其他索引92 4.25 ER模型96 4.26 熱備份和冷備份的區(qū)別是什么?99 4.27 數(shù)據(jù)字典的定義及作用有哪些?99 4.28 統(tǒng)一建模語(yǔ)言100 4.29 分布式數(shù)據(jù)庫(kù)與并行數(shù)據(jù)庫(kù)有何異同點(diǎn)?102 4.30 什么是OLAP和OLTP?102 4.31 數(shù)據(jù)庫(kù)連接池是什么?103 4.32 數(shù)據(jù)庫(kù)安全104 4.33 數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)題106 4.34 數(shù)據(jù)庫(kù)基礎(chǔ)部分其他真題解析112 第5章 Oracle數(shù)據(jù)庫(kù)119 5.1 開(kāi)發(fā)類常考知識(shí)點(diǎn)119 5.1.1 PL/SQL程序119 5.1.2 行列互換有哪些方法?121 5.1.3 如何刪除表中重復(fù)的記錄123 5.1.4 DELETE、DROP和TRUNCATE的區(qū)別是什么?123 5.1.5 NULL的注意事項(xiàng)124 5.1.6 如何判斷一個(gè)存儲(chǔ)過(guò)程是否正在運(yùn)行?125 5.1.7 AUTHID CURRENT_USER的作用是什么?125 5.1.8 Oracle用戶密碼含特殊字符時(shí)如何登錄?126 5.1.9 當(dāng)DML語(yǔ)句中有一條數(shù)據(jù)報(bào)錯(cuò)時(shí),如何讓該DML語(yǔ)句繼續(xù)執(zhí)行?127 5.1.10 真題128 5.2 維護(hù)類?贾R(shí)點(diǎn)133 5.2.1 Oracle對(duì)象133 5.2.2 體系結(jié)構(gòu)135 5.2.3 SQL優(yōu)化相關(guān)147 5.2.4 Oracle性能相關(guān)157 5.2.5 會(huì)話168 5.2.6 高可用169 5.2.7 備份恢復(fù)177 5.2.8 建庫(kù)、刪庫(kù)、網(wǎng)絡(luò)184 第6章 MySQL數(shù)據(jù)庫(kù)190 6.1 基礎(chǔ)部分190 6.1.1 MySQL數(shù)據(jù)庫(kù)有什么特點(diǎn)?190 6.1.2 MySQL的企業(yè)版和社區(qū)版的區(qū)別有哪些?191 6.1.3 在Linux下安裝MySQL有哪幾種方式?它們的優(yōu)缺點(diǎn)各有哪些?191 6.1.4 如何確定MySQL是否處于運(yùn)行狀態(tài)?如何開(kāi)啟MySQL服務(wù)?191 6.1.5 如何創(chuàng)建和刪除表?192 6.1.6 如何創(chuàng)建和刪除數(shù)據(jù)庫(kù)?195 6.1.7 如何查看數(shù)據(jù)庫(kù)的版本、當(dāng)前登錄用戶和當(dāng)前的數(shù)據(jù)庫(kù)名稱?195 6.1.8 MySQL有哪些常用日期和時(shí)間函數(shù)?196 6.1.9 MySQL有哪些數(shù)據(jù)類型?197 6.1.10 真題200 6.2 維護(hù)部分203 6.2.1 MySQL中l(wèi)imit的作用是什么?203 6.2.2 如何查看和修改系統(tǒng)參數(shù)?203 6.2.3 MySQL有哪幾類日志文件?205 6.2.4 MySQL支持事務(wù)嗎?211 6.2.5 MySQL有幾種存儲(chǔ)引擎(表類型)?各自有什么區(qū)別?212 6.2.6 MySQL InnoDB引擎類型的表有哪兩類表空間模式?它們各有什么優(yōu)缺點(diǎn)?220 6.2.7 如何批量更改MySQL引擎?221 6.2.8 什么是間隙鎖?222 6.2.9 MySQL有哪些命令可以查看鎖?223 6.2.10 MySQL如何查看執(zhí)行計(jì)劃?執(zhí)行計(jì)劃中每列的含義分別是什么?227 6.2.11 MySQL原生支持的備份方式及種類有哪些?232 6.2.12 MySQL有哪幾個(gè)默認(rèn)數(shù)據(jù)庫(kù)?235 6.2.13 MySQL區(qū)分大小寫嗎?236 6.2.14 MySQL中的字符集236 6.2.15 如何解決MySQL中文亂碼問(wèn)題?238 6.2.16 如何提高M(jìn)ySQL的安全性?239 6.2.17 如何對(duì)MySQL進(jìn)行優(yōu)化?240 6.2.18 什么是MySQL的復(fù)制(Replication)?244 6.2.19 profile的意義及使用場(chǎng)景245 6.2.20 Oracle和MySQL中的分組(GROUP BY)問(wèn)題246 6.2.21 MySQL的分區(qū)表248 6.2.22 MySQL中的索引250 6.2.23 MySQL的CHECK、OPTIMIZE和ANALYZE的作用分別是什么?253 6.2.24 真題254 第7章 SQL Server數(shù)據(jù)庫(kù)260 7.1 SQL Server有Linux版本嗎?260 7.2 SQL Server如何查看版本?260 7.3 SQL Server 數(shù)據(jù)庫(kù)如何啟動(dòng)?261 7.4 SQL Server有哪些默認(rèn)的系統(tǒng)數(shù)據(jù)庫(kù)?262 7.5 SQL Server物理文件有哪3種類型?263 7.6 SQL Serverr的哪類視圖是可以更新的?263 7.7 SQL Server標(biāo)準(zhǔn)的SQL與TSQL的區(qū)別是什么?264 7.8 SQL Server采用什么方法可以保證數(shù)據(jù)的完整性?266 7.9 登錄名、服務(wù)器角色、用戶名和數(shù)據(jù)庫(kù)角色266 7.10 SQL Server中的完全備份、差異備份和日志備份的區(qū)別是什么?267 7.10 SQL Server提供的3種恢復(fù)模型分別是什么?它們有什么區(qū)別?267 7.12 SQL Server數(shù)據(jù)庫(kù)有哪3類觸發(fā)器?268 7.13 真題269 7.13.1 簡(jiǎn)答題269 7.13.2 選擇題270 第8章 其他數(shù)據(jù)庫(kù)272 8.1 網(wǎng)狀數(shù)據(jù)庫(kù)與層次數(shù)據(jù)庫(kù)273 8.2 關(guān)系型數(shù)據(jù)庫(kù)274 8.2.1 RDBMS274 8.2.2 PostgreSQL275 8.2.3 DB2275 8.2.4 Microsoft Access276 8.2.5 Sybase276 8.2.6 內(nèi)存數(shù)據(jù)庫(kù)277 8.3 非關(guān)系型數(shù)據(jù)庫(kù)(NoSQL)285 8.3.1 鍵值(KeyValue)數(shù)據(jù)庫(kù)Redis286 8.3.2 鍵值(KeyValue)數(shù)據(jù)庫(kù)Memcached287 8.3.3 文檔型數(shù)據(jù)庫(kù)MongoDB287 8.3.4 行存儲(chǔ)和列存儲(chǔ)289 8.4 時(shí)間序列數(shù)據(jù)庫(kù)290 8.5 NewSQL291 8.6 區(qū)塊鏈292 第9章 操作系統(tǒng)、網(wǎng)絡(luò)和存儲(chǔ)294 9.1 進(jìn)程管理294 9.1.1 進(jìn)程與線程有什么區(qū)別?294 9.1.2 內(nèi)核線程和用戶線程的區(qū)別295 9.2 內(nèi)存管理295 9.2.1 內(nèi)存管理有哪幾種方式?295 9.2.2 什么是虛擬內(nèi)存?296 9.2.3 什么是內(nèi)存碎片?什么是內(nèi)碎片?什么是外碎片296 9.2.4 虛擬地址、邏輯地址、線性地址、物理地址有什么區(qū)別?296 9.3 存儲(chǔ)297 9.3.1 Linux下邏輯卷管理(LVM)是什么?其常用命令有哪些?297 9.3.2 AIX下管理LV的常用命令有哪些?299 9.3.3 什么是GPFS?302 9.3.4 什么是RAID?各種級(jí)別的RAID的區(qū)別是什么?303 9.4 OS304 9.4.1 接觸過(guò)哪些OS系統(tǒng)?常用命令有哪些?304 9.4.2 會(huì)寫SHELL腳本嗎?305 9.4.3 AIX系統(tǒng)下的LPar、邏輯CPU、虛擬CPU、物理CPU的含義分別是什么?306 9.4.4 NMON的作用是什么?312 9.4.5 Linux環(huán)境下/dev/shm目錄的作用是什么?313 9.4.6 Linux下的常用設(shè)備有哪些?314 9.4.7 什么是YUM?如何配置本地YUM源?318 9.4.8 Linux下如何設(shè)置定時(shí)任務(wù)(crontab)?320 9.4.9 Linux文件的3種時(shí)間(mtime、atime、ctime)的區(qū)別是什么?322 9.5 網(wǎng)絡(luò)323 9.5.1 TCP和UDP的區(qū)別有哪些?323 9.5.2 Ping命令是什么?323 9.5.3 常用的網(wǎng)絡(luò)安全防護(hù)措施有哪些?324 9.5.4 交換機(jī)與路由器有什么區(qū)別?325 9.5.5 DNS的作用是什么?325 9.6 真題326 第10章 數(shù)據(jù)庫(kù)程序員面試筆試真題庫(kù)330 10.1 真題一330 10.2 真題二331 10.3 真題三332 10.4 真題一答案334 10.5 真題二答案334 10.6 真題三答案335 附錄 336 推薦資料336
你還可能感興趣
我要評(píng)論
|