黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 職業指南 工程師常見的Java數據庫面試題

工程師常見的Java數據庫面試題

更新時間:2022-12-23 14:51:03 來源:動力節點 瀏覽1297次

作為一名Java程序員,數據庫知識是必須要了解透徹的問題,對數據庫的掌握程度一定是熟練的,這也是考察個人的功底是否扎實,特別是對于初級開發這,面試的時候肯定是會被問到的,這里收集了一些常見的類型問題,希望可以幫助到大家:

java數據庫面試題

1.數據庫的三范式是什么?

第一范式:強調的是列的原子性,即數據庫表的每一列都是不可分割的原子數據項。

第二范式:要求實體的屬性完全依賴于主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性。

第三范式:任何非主屬性不依賴于其它非主屬性。

2.一張自增表里面總共有 7 條數據,刪除了最后 2 條數據,重啟 MySQL 數據庫,又插入了一條數據,此時 id 是幾?

表類型如果是 MyISAM ,那 id 就是 8。

表類型如果是 InnoDB,那 id 就是 6。

InnoDB 表只會把自增主鍵的最大 id 記錄在內存中,所以重啟之后會導致最大 id 丟失。

3.如何獲取當前數據庫版本?

使用 select version() 獲取當前 MySQL 數據庫版本。

4.說一下 ACID 是什么?

Atomicity(原子性):一個事務(transaction)中的所有操作,或者全部完成,或者全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被恢復(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。即,事務不可分割、不可約簡。

Consistency(一致性):在事務開始之前和事務結束以后,數據庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設約束、觸發器、級聯回滾等。

Isolation(隔離性):數據庫允許多個并發事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務并發執行時由于交叉執行而導致數據的不一致。事務隔離分為不同級別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重復讀(repeatable read)和串行化(Serializable)。

Durability(持久性):事務處理結束后,對數據的修改就是永久的,即便系統故障也不會丟失。

5.char 和 varchar 的區別是什么?

char(n) :固定長度類型,比如訂閱 char(10),當你輸入"abc"三個字符的時候,它們占的空間還是 10 個字節,其他 7 個是空字節。

chat 優點:效率高;缺點:占用空間;適用場景:存儲密碼的 md5 值,固定長度的,使用 char 非常合適。

varchar(n) :可變長度,存儲的值是每個值占用的字節再加上一個用來記錄其長度的字節的長度。

所以,從空間上考慮 varcahr 比較合適;從效率上考慮 char 比較合適,二者使用需要權衡。

6.float 和 double 的區別是什么?

  • float 最多可以存儲 8 位的十進制數,并在內存中占 4 字節。
  • double 最可可以存儲 16 位的十進制數,并在內存中占 8 字節。

7.MySQL 的內連接、左連接、右連接有什么區別?

內連接關鍵字:inner join;左連接:left join;右連接:right join。

內連接是把匹配的關聯數據顯示出來;左連接是左邊的表全部顯示出來,右邊的表顯示出符合條件的數據;右連接正好相反。

8.MySQL 索引是怎么實現的?

索引是滿足某種特定查找算法的數據結構,而這些數據結構會以某種方式指向數據,從而實現高效查找數據。

具體來說 MySQL 中的索引,不同的數據引擎實現有所不同,但目前主流的數據庫引擎的索引都是 B+ 樹實現的,B+ 樹的搜索效率,可以到達二分法的性能,找到數據區域之后就找到了完整的數據結構了,所有索引的性能也是更好的。

9.怎么驗證 MySQL 的索引是否滿足需求?

使用 explain 查看 SQL 是如何執行查詢語句的,從而分析你的索引是否滿足需求。

explain 語法:

explain select * from table where type=1。

10.說一下數據庫的事務隔離?

MySQL 的事務隔離是在 MySQL. ini 配置文件里添加的,在文件的最后添加:

transaction-isolation = REPEATABLE-READ

可用的配置值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、SERIALIZABLE。

  • READ-UNCOMMITTED:未提交讀,最低隔離級別、事務未提交前,就可被其他事務讀取(會出現幻讀、臟讀、不可重復讀)。
  • READ-COMMITTED:提交讀,一個事務提交后才能被其他事務讀取到(會造成幻讀、不可重復讀)。
  • REPEATABLE-READ:可重復讀,默認級別,保證多次讀取同一個數據時,其值都和事務開始時候的內容是一致,禁止讀取到別的事務未提交的數據(會造成幻讀)。
  • SERIALIZABLE:序列化,代價最高最可靠的隔離級別,該隔離級別能防止臟讀、不可重復讀、幻讀。

臟讀 :表示一個事務能夠讀取另一個事務中還未提交的數據。比如,某個事務嘗試插入記錄 A,此時該事務還未提交,然后另一個事務嘗試讀取到了記錄 A。

不可重復讀 :是指在一個事務內,多次讀同一數據。

幻讀 :指同一個事務內多次查詢返回的結果集不一樣。比如同一個事務 A 第一次查詢時候有 n 條記錄,但是第二次同等條件下查詢卻有 n+1 條記錄,這就好像產生了幻覺。發生幻讀的原因也是另外一個事務新增或者刪除或者修改了第一個事務結果集里面的數據,同一個記錄的數據內容被修改了,所有數據行的記錄就變多或者變少了。

以上就是“工程師常見的Java數據庫面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 青青青国产精品手机在线观看 | 日本久久不射 | 7m国产精品分类视频大全 | 国产日韩欧美一区二区三区视频 | 亚洲另类激情专区小说婷婷久 | 免费黄色大片视频 | 黑人成人影院 | 一级a美女毛片 | 天天插天天透天天狠 | 精品欧美日韩一区二区三区 | 亚洲精品tv久久久久久久久 | 亚洲一级特黄 | 激情综合网站 | 一区二区三区高清视频在线观看 | 天天操天天干天天操 | 人人舔人人插 | 一区二区视频在线观看 | 国产16页 | 亚洲日本va中文字幕在线不卡 | 中文字幕在线观看一区二区三区 | 精品一区一区三区新区乱码 | 亚洲欧美日本一区 | 亚欧中文字幕 | 欧美高清无砖专区欧美精品 | 日本三级免费片 | 72式性无遮挡免费视频观看 | 影音先锋色图 | 麻豆精品不卡国产免费看 | 色综合天天综合网国产人 | 成人a级高清视频在线观看 成人a大片在线观看 | 成人一区二区免费中文字幕 | 欧美日韩视频一区二区三区 | 日韩一区二区三区视频在线观看 | 五月天亚洲视频 | 久久七| 99色吧 | 波多野结衣在线一区二区 | 欧洲性xxx | 天干天干啦夜天天天视频 | 手机小视频在线观看 | 日韩欧美精品在线视频 |