<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          這道小小的數(shù)據(jù)庫面試題,竟然難倒了那么多的英雄好漢

          共 1319字,需瀏覽 3分鐘

           ·

          2021-04-19 09:47

          在面試的時候,我經(jīng)常會問一個關于MySQL的小知識點,讓我吃驚的是,這個看起來非常簡單的問題,竟然難倒了很多的面試者,不管是初出茅廬的大學生,還是工作三五年的軟工程師,抑或是經(jīng)驗非常豐富的資深研發(fā)或者架構師,有相當大的比例都回答錯了,這的確讓我感覺比較震驚,于是帶著一種好奇心一次次地在面試中問這個問題,但一次次的結論都證實了:很多人對這個小小的知識點都掌握不到位,所以我覺得有必要把它寫出來,畢竟萬丈高樓平地起,靠的還是堅實的基礎,每一個關鍵的知識都必須掌握到位。

          描述一下問題的背景,為了簡化起見,假定一個表里只有兩個字段,一個id,一個是name,name字段的數(shù)據(jù)類型為varchar,可以為空,表里的數(shù)據(jù)只有一行,如下所示:




          問題來了:如果我要查詢name等于john的記錄,sql也就是像下面這樣子,會返回記錄嗎?


          select * from test_null where name = 'john';

          對于這個問題,幾乎所有人都可以回答正確,很顯然,表里的記錄,name字段的值為null,它當然不等于john,肯定就不會返回任何記錄了。

          然后我接著追問,如果我要查詢name不等john的數(shù)據(jù),會返回記錄嗎?sql如下:


          select * from test_null where name <> 'john';


          這個時候答案就開始變得五花八門了,要么很確定的認為會返回記錄,畢竟null值肯定不等于john嘛;要么回答得吞吞吐吐,面試者可能會想,既然這么問應該是有什么坑,但也不知道原因到底是什么的,即使回答正確也可以說是蒙的。當然,也有一些人能夠正確回答并清楚地解釋原因,但這樣的候選人大概只占到30%左右,這的確讓我感覺到很驚訝,null值是數(shù)據(jù)庫中非常常見的東西,必須要對它掌握清楚都可以更好的進行編程啊。

          當然,正確答案就是不會返回記錄,因為null值表示不確定,有可能是這個值,也有可能是那個值,難以捉摸,任何值跟null比較都會返回null,所以上面的sql就不會返回記錄了。

          由此看來,MySQL中的null是很多人的知識盲點,如果本篇文章的在看數(shù)超過10,我后續(xù)會專門寫一篇深入剖析的文章,歡迎大家支持。原創(chuàng)不易,您的點贊、在看、轉發(fā)是對我的最大支持。


          如果本篇文章的在看數(shù)超過10,我后續(xù)會專門寫一篇深入剖析null值的文章


          如果本篇文章的在看數(shù)超過10,我后續(xù)會專門寫一篇深入剖析null值的文章


          如果本篇文章的在看數(shù)超過10,我后續(xù)會專門寫一篇深入剖析null值的文章


          推薦閱讀:

          從面試角度一文學完 Kafka

          數(shù)據(jù)庫跟緩存的雙寫一致性

          Redis 高可用篇:你管這叫 Sentinel 哨兵集群原理

          Kafka原理篇:圖解kakfa架構原理

          架構設計方法論

          超硬核!程序員10種副業(yè)賺錢之道,實現(xiàn)月收入增加20k!


          互聯(lián)網(wǎng)全棧架構,。


          瀏覽 34
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  a级黄片免费在线观看 | 又黄又爽一区二区三区 | 亚州高清A∨在线观看 | 亚洲成人在线视频 | 成人看片suvav |