MySQLのINSERT文でデフォルト値を指定する方法をわかりやすく解説
テーブルを作成する際に、あるカラムに対してデフォルト値(初期値)が定義されている場合、INSERT文の中で DEFAULT キーワードを使用すると、そのカラムに自動的にデフォルト値を挿入することができます。
デフォルト値を持つテーブルの作成例
まず、「doj」(入社日)カラムにデフォルト値「2005-01-01」を設定した「employee」テーブルを作成します。
mysql> Create table employee(id int, name varchar(20), doj date DEFAULT '2005-01-01'); Query OK, 0 rows affected (0.09 sec)
DEFAULTキーワードを使ったデータ挿入
次に、INSERT文で doj カラムの値として「DEFAULT」を指定してレコードを挿入してみましょう。
mysql> Insert into employee(id, name, doj) values(1, 'Aarav', DEFAULT); Query OK, 1 row affected (0.03 sec)
挿入されたデータを確認します。
mysql> select * from employee; +------+------------+---------------+ | id | name | doj | +------+------------+---------------+ | 1 | Aarav | 2005-01-01 | +------+------------+---------------+ 1 row in set (0.00 sec)
実行結果のポイント
上記のクエリから分かるように、INSERT文で値を指定する際に DEFAULT キーワードを使用すると、MySQLはテーブル定義時(CREATE TABLE時)にそのカラムへ指定しておいたデフォルト値を自動的に挿入します。
この方法には以下のようなメリットがあります。
- 毎回同じ値を手入力する必要がなく、入力ミスを防げる
- カラムの値を省略した場合と同様に、一貫性のある初期値が保証される
- 後からデフォルト値を変更すれば、以降の挿入処理に自動的に反映される
なお、カラム自体をINSERT文のカラムリストから省略した場合も、同様にデフォルト値が適用されるため、状況に応じて使い分けると良いでしょう。
-
MySQLステートメントで数値を16進数(HEX)として入力する方法
MySQLでは、数値を16進数(HEX)リテラルとして記述することができます。式の中で16進数を使用すると、その文脈に応じて自動的に数値へ変換されるため、算術演算などにもそのまま利用可能です。ここでは、MySQLステートメント内で数値を16進数として入力する2つの方法を紹介します。方法1:接頭辞「X」とシングルクォートを使うこの方法では、16進数をシングルクォート()で囲み、先頭に接頭辞「X」を付けます。こうすることで、HEX文字列は式のコンテキストに基づいて自動的に数値へ変換されます。使用例mysql> Select X5152545678+ 10; +----------------
-
MySQLでprintステートメントをシミュレートする方法|SELECT文を使った文字列・数値の出力
MySQLには、他のプログラミング言語のようなprintステートメントが用意されていません。しかし、SELECT文を活用することで、同じように値を画面に出力できます。デバッグや動作確認の際に非常に便利なテクニックなので、ぜひ覚えておきましょう。基本的な構文MySQLでprintのように出力するには、以下の構文を使用します。SELECT 任意の文字列や数値 AS ;AS の部分は列名(エイリアス)を空にする指定です。これにより、余計な列名を表示せずに出力結果だけを見やすくすることができます。ケース1:文字列を出力するまず、文字列を出力する基本例を確認してみましょう。mysql> SEL