広告スペース(バナー)
🗄️SQL レッスン
データ操作とサブクエリ5▾
構文の基本を深める7▾
応用的な条件・結合7▾
検索とテーブル操作の応用6▾
高度なクエリ技法6▾
集計とデータ整合性6▾
レッスン 36 / 50
CHECK制約で入力値を制限する
このレッスンでは、CHECK制約を使った入力値の制限方法を学び、データベース自身にルールを守らせる方法を理解することを目標にします。「SQL CHECK制約 使い方」で調べている方向けです。
CHECK(条件)をテーブル定義に付けると、条件を満たさない値が入ろうとしたときにエラーで拒否してくれます。「点数は0〜100の範囲内」のような、データベース自身によるルールチェックです。
サンプルコードでは、score INTEGER CHECK(score >= 0 AND score <= 100)という指定で、点数の範囲を0から100までに制限しています。範囲外の150点を登録しようとすると、データベースがエラーを出して拒否する様子を確認してみましょう。
初心者がよくつまずくのが、アプリケーション側のチェックだけで十分だと考えてしまうことです。アプリケーション側だけでバリデーションを行っていると、別の経路からの不正なデータ登録を防げないことがあります。データベース自体にルールを持たせることで、より確実にデータの正しさを保証できます。
実務のデータベース設計では、こうした制約を適切に設定しておくことで、プログラムのバグによる不正なデータ登録を未然に防ぐ、最後の砦としての役割を果たします。
SQL
OUTPUT / 実行結果
💡 初回実行時はSQLエンジンの読み込みに数秒かかります。
🎯
ここまでできればゴール達成!
不正な値が登録されないよう、テーブル側で制限を掛けられるようになります。
不正な値が登録されないよう、テーブル側で制限を掛けられるようになります。
広告スペース(バナー)
広告スペース(記事内)