{category}

MySQL - 制約

DEFAULT

デフォルト(データ型と制約

意味 列のデフォルト値を設定


DEFAULTとは?

DEFAULT制約は、新しい行が挿入されるときに列に明示的な値が指定されない場合に使用される、デフォルト(既定)値を設定します。これにより、データの一貫性を保ちつつ、入力の手間を省くことができます。

DEFAULTの具体的な使い方

DEFAULT制約の例

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO users (id, name) VALUES (1, 'John');
INSERT INTO users (id, name, created_at) VALUES (2, 'Jane', '2023-01-01 12:00:00');

SELECT * FROM users;

👇出力結果

id | name | created_at
1  | John | 2023-05-15 10:30:00
2  | Jane | 2023-01-01 12:00:00

この例では、usersテーブルを作成し、created_at列にDEFALT制約を設定しています。新しいユーザーが追加されるたびに、現在の日時が自動的にcreated_at列に記録されます。明示的に値を指定することも可能です。

DEFAULTに関するよくある質問

Q. DEFAULTでどんな値が使えますか?
A. DEFAULT制約では、以下のような値を使用できます:1) 固定値(数値、文字列など)。2) 関数(CURRENT_TIMESTAMP, UUIDなど)。3) 式(計算結果)。4) NULL(NOT NULL制約がない場合)。ただし、サブクエリや他のカラムの値は使用できません。データ型に合致する値を指定する必要があります。
Q. 既存のカラムにDEFAULTを追加可能?
A. はい、既存のカラムにDEFAULT制約を追加することは可能です。ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_value; のようなコマンドを使用します。ただし、これは新しく挿入されるレコードにのみ影響し、既存のレコードの値は変更されません。既存のレコードにもデフォルト値を適用したい場合は、別途UPDATEコマンドを実行する必要があります。
Q. DEFAULTとNOT NULLの違いは?
A. DEFAULT制約とNOT NULL制約は異なる目的を持ちます。DEFAULT制約は、値が明示的に指定されない場合に使用される既定値を設定します。一方、NOT NULL制約は、そのカラムにNULL値を許可しないことを指定します。これらは併用することができ、よく一緒に使用されます。例えば、DEFAULT 0 NOT NULLと指定すると、値が提供されない場合は0が使用され、かつNULL値も許可されません。

DEFAULTが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、MySQLのDEFAULTやNOT NULL、TIMESTAMP、STORED、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


MySQLを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!MySQLはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

NOT NULL

NULL値を禁止する制約

種類: 制約

TIMESTAMP

日時を自動更新するデータ型

種類: 日付と時間型

STORED

計算結果を保存する列

種類: 生成列

IGNORE INDEX

特定のインデックス使用を回避

種類: インデックスヒント

FLUSH PRIVILEGES

権限の即時反映

種類: システム管理