DB(へたれな)コネタ nullの使い方に注意(初心者用)

DBの設計時になにも考えないとついnullを許容したテーブル設計にしがちです。たとえば、あるものの合格判定列を作るとしましょう。このとき、合格を数値の「1」とし、不合格を「2」とした場合に、まだ未評価者も含めて、合格していないで手を抽出したい場合のSQL文は?

SELECT * 
FROM hoge 
WHERE 合格 <> 1

上記SQL文だと、まだ未評価で合否を格納していないデータは抽出されません。下記のSQL文に修正する必要があります。

SELECT * 
FROM hoge 
WHERE 合格判定 <> 1 
   OR 合格判定 IS NULL

なんかSQL文が直感的でありませんよね。そこで、合格判定列にnull制約を設け、さらに既定値として、未評価「0」を追加します。そうしておけば、データnullであることを特別視する必要が無くなり、①のSQL文で合格でないデータを抽出可能となります。
テーブル設計時、可能な限り、NULL制約と既定値を付与しておいたほうがいいですね。でも!初期の段階においてNULL制約が入っているとテストデータ作成などにウザったい思いをすることが難点です。そのテストデータ自身???何ですけどね。