MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのNOT NULL制約とは?テーブル作成時にカラムをNOT NULLとして宣言する方法

MySQLにおけるNOT NULL制約とは

MySQLのNOT NULL制約は、テーブルのカラムにNULL値が格納されることを禁止する制約です。一度NOT NULL制約を適用したカラムには、NULL値を渡すことができなくなります。

なお、NOT NULL制約はテーブル全体に対して宣言できるものではなく、個々のカラムに対してのみ設定できます。つまり、NOT NULLは「カラムレベルの制約」であるという点に注意してください。

フィールドをNOT NULLとして宣言する方法

カラムをNOT NULLとして宣言するには、CREATE TABLE文でカラムを定義する際にNOT NULLキーワードを指定します。

例

mysql> CREATE TABLE Employee(ID INT NOT NULL, First_Name VARCHAR(20), Last_Name VARCHAR(20), Designation VARCHAR(15));
Query OK, 0 rows affected (0.59 sec)

上記のクエリでは、「Employee」テーブルの「ID」フィールドにNOT NULL制約を適用しています。これにより、「ID」カラムにはNULL値を格納できなくなります。

実際にDESCRIBE文を実行すると、IDフィールドがNULLを受け付けない設定になっていることを確認できます。

mysql> DESCRIBE Employee\G
*************************** 1. row ***************************
  Field: ID
    Type: int
    Null: NO
     Key:
Default: NULL
  Extra:
*************************** 2. row ***************************
  Field: First_Name
    Type: varchar(20)
    Null: YES
     Key:
Default: NULL
  Extra:
*************************** 3. row ***************************
  Field: Last_name
    Type: varchar(20)
    Null: YES
     Key:
Default: NULL
  Extra:
*************************** 4. row ***************************
  Field: Designation
    Type: varchar(15)
    Null: YES
     Key:
Default: NULL
  Extra:
4 rows in set (0.03 sec)

出力結果の見方

DESCRIVE文の出力にある「Null」列に注目してください。「ID」フィールドのNull値は「NO」と表示されており、NULL値が許可されていないことが分かります。一方、他のフィールド(First_Name、Last_name、Designation)は「YES」と表示されており、これらのカラムにはNULL値を格納することが可能です。

このように、NOT NULL制約を活用することで、必ず値が入っていなければならない重要なカラム(主キーや社員番号など)のデータ整合性を保つことができます。

  1. MySQLのENUM型とNOT NULL:デフォルト値の挙動を具体例で解説

    MySQLのENUM型におけるNOT NULLの役割MySQLのENUM(列挙型)データ型では、NOT NULL制約を宣言するかどうかによって、値を指定せずにINSERTした場合のデフォルト値の挙動が変わります。NOT NULLを宣言しない場合:デフォルト値はNULLになります。NOT NULLを宣言した場合:ENUMで定義した最初の値が自動的にデフォルト値として設定されます。それぞれのケースについて、実際のSQL実行例を見ていきましょう。CASE 1:NOT NULLなし → NULLが格納されるケースまず、通常のENUMカラムを持つテーブルを作成します。mysql> create t

  2. MySQLにおける「!=NULL」と「IS NOT NULL」の違いとは?

    MySQLでは、値を!=NULLと比較すると、結果は必ずNULLになります。つまり、!=NULLという比較は意味を持ちません。NULLは「不明な値」を表すため、通常の比較演算子では判定できないのです。NULL値を判定するには、専用の演算子であるIS NOT NULLを使用します。ここでは、!=NULLとIS NOT NULLの違いを実際に確認するために、まずテーブルを作成します。テーブルの作成まず、次のコマンドでテーブルを作成します。mysql> create table DemoTable1970     (