広告スペース(バナー)
🗄️SQL レッスン
SELECTの基礎6
データ操作とサブクエリ5
構文の基本を深める7
応用的な条件・結合7
検索とテーブル操作の応用6
高度なクエリ技法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エンジンの読み込みに数秒かかります。

🎯
ここまでできればゴール達成!
不正な値が登録されないよう、テーブル側で制限を掛けられるようになります。
広告スペース(バナー)
広告スペース(記事内)