『NULL』と『ブランク』の違いがわからない!!そんなプログラマーは新人だけではありません。
実は、経験してきたキャリアによっては認識に違いが出てくるんです。
そこで今回は、現役SEが『NULL』『ブランク』『スペース』『空白』『空文字』の違いを解説します。
この記事を読むのに必要な時間は約 5 分です。
一番間違えにくいのが『スペース』『空白』
これは、共通認識を持っている人が多いです。
『スペース』はそのまま『半角スペース』『全角スペース』として使用されますからね。ほとんどの人は『スペース』と聞けば、同じイメージを持つでしょう。
『空白』も同じ意味です。
『ブランク』と『空文字』の違い
まずは、最初に『ブランク』と『空文字』の違いです。
結論から言うと、違いはありません。言い方の問題で同じ意味です。ちなみに私は、『空文字』という表現は使いません。
しかし、『ブランク』という言葉を使用した時に、「『空文字』のこと?」と聞かれることがあります。只の言い方のことなので、深く考えないようにしましょう。
一番ややこしいのが『NULL』と『ブランク』の違い
ほとんどの人がややこしいと感じているのが『NULL』と『ブランク』の違いですよね。
これは、非常に間違えている人が多いです。
現役プログラマーでも、レベルの低い人は、違いを理解せずにプログラミングをして、バグを引き起こします。
では、説明していきましょう。
『ブランク』とは?『スペース』『空白』との違い
人によっては、『ブランク』のことを『スペース』や『空白』と同義だと思っている人もいますが、まったく意味が違います。『スペース』には、長さが存在しますが『ブランク』には長さが存在しません。
『スペース』は、半角・全角スペースをダブルクォーテーション、またはシングルクォーテーションで囲んだ形で表現されます。
それに対しブランクは、ダブルクォーテーション、またはシングルクォーテーションのみで表現されます。
『NULL』とは?
『NULL』は、値もなければ要素の定義もされていない状態のことです。
『ブランク』と違い、表現する時はダブルクォーテーションもシングルクォーテーションも使用しません。『NULL』です。
プログラマーによって認識が違うのは何故?
ここまでの説明で理解はしていただいたと思います。
ただ、何故プログラマーによって認識の違いがあるかが気になりますよね。
それは『NULL』と『ブランク』の違いを意識せずにプログラミングをしても問題ないケースが存在するからなんです。
それも説明します。
認識が違う理由は、データーベースにより解釈が違うことにある
そうなんです。プログラマーでも認識が違う理由はデータベースの解釈のせいというのが一番多い理由です。
Oracle以外のデータベースでは、『NULL』と『ブランク』を明確に区別しているのですが、実はOracleでは『NULL』と『ブランク』の違いがないんです。
つまり、Oracleでプログラミングを覚えた人は、違いを理解していない人が多いのです。
プログラム言語によって、認識の違いが生じることもありますが、データベースによっても認識が変わるんですね。
参考になる記事があります。他のDBと比較している表があるので、見てみてください。
今日は、SQL DBの文字型におけるNULLと空白文字(スペース)のお話しをします。 SQL DBに...…
『NULL』と『ブランク』以外にも、データベースによって解釈が違うことがわかります。
結局は経験で覚えていくしかない
普段の業務で意識せずにコーディングをしている人は、こういった凡ミスでバグは出してしまいます。
勉強をして実際にコーディングをすることによって経験を積むと、こういった凡ミスでのバグは減っていきます。凡ミスは工数が無駄に増えてしまう要因です。
品質の高いコーディングをして、工数を削減しましょう。