データの追加
テーブルにデータを追加するにはINSERT文を使います。基本となる書式は次の通りです。
INSERT INTO db_name.tbl_name (col_name1, col_name2, ...) VALUES (value1, value2, ...);
指定のデータベース内にある指定のテーブルに対してデータを追加します。
USE文を使ってデータベースに接続している状態で、そのデータベース内にあるテーブルにデータを追加する場合は次のように単にテーブル名だけを指定して作成することもできます。
INSERT INTO tbl_name (col_name1, col_name2, ...) VALUES (value1, value2, ...);
データを追加するテーブルには通常複数のカラムが存在しています。データを追加する時に値を指定したいカラムを列挙し、そのカラムの数だけ値を指定して下さい。テーブルの中で値が指定されなかったカラムにはデフォルトの値が格納されます。
またテーブルに含まれている全てのカラムに値を指定する場合に限ってカラムの記述を省略することができます。実際には次の書式となります。
INSERT INTO tbl_name VALUES (value1, value2, ...);
こちらはこのページの後半で説明します。
サンプル
実際に試してみます。まず次のようなテーブルを作成します。
mysql> create table personal(id int default 0, old int, name varchar(10));
このテーブルには3つのカラムが含まれていますのでデータを1つ追加するには3つのカラムに対して値を指定することになります。
ではデータを1つ追加します。次のように入力して下さい。
mysql> insert into personal(id, old, name) values(1, 18, 'Satou');
上記では「personal」テーブルに含まれる3つのカラムに対して全て値を指定してデータを追加しています。では「personal」テーブルのデータを取得してみます。
データが1つ格納されており、そのデータの各カラムには指定した値が格納されていることが確認できます。
*** ***
もう一つデータを追加します。今度はテーブルに含まれる3つのカラムの内、「id」カラムと「name」カラムだけに値を指定してデータを追加します。次のように入力して下さい。
mysql> insert into personal(id, name) values(2, 'Hayashi');
では「personal」テーブルのデータを取得してみます。
データが1つ追加されて2つ格納されています。
2つ目のデータの「id」カラムと「name」カラムの値はINSERT文で指定した値となっています。そしてテーブルに含まれるカラムの中でデータを追加する時に値が指定されなかったカラムにはそのカラムのデフォルトの値が格納されることになります。今回の場合は「old」カラムの値を指定していませんでしたので「old」カラムにはデフォルト値であるNULLが格納されています。
全てのカラムに対して値を指定する場合
データを追加する時に、テーブルに含まれている全てのカラムに値を指定する場合に限ってカラムの記述を省略することができます。実際には次の書式となります。
INSERT INTO tbl_name VALUES (value1, value2, ...);
この書式の場合は必ず全てのカラムの値を指定する必要がある点に注意して下さい。
では実際に試してみます。先ほど使用したテーブルに対して次のようにデータを追加します。
mysql> insert into personal values(3, 29, 'Takahashi');
テーブルには3つのカラムが含まれていますので、3つの値を指定してINSERT文を実行しました。これは次のように実行した場合と同じです。
mysql> insert into personal(id, old, name) values(3, 29, 'Takahashi');
では「personal」テーブルのデータを取得してみます。
データが追加されていることが確認できます。
値の代わりに式を指定する
データを追加する時に各カラムに固定値を指定するだけでなく式を記述することができます。演算子を使ったり関数を使ったりする他に、既に値が指定されたカラムを参照することができます。
次のようなテーブルを例に考えてみます。
mysql> create table seiseki(suugaku int, eigo int, goukei int, heikin int);
「suugaku」カラムと「eigo」カラムには固定値を指定しますが、「goukei」カラムと「heikin」カラムには「suugaku」カラムと「eigo」カラムに指定した値を使った式を記述して値を格納します。
ではデータを格納してみます。
mysql> insert into seiseki values(82, 73, -> suugaku + eigo, round((suugaku + eigo) / 2));
既に値を指定したカラムを後のカラムから参照する場合は、上記のようにカラム名を式の中で指定して下さい。
また「heikin」カラムに格納する式は「goukei」カラムを参照して次のように記述することもできます。
mysql> insert into seiseki values(90, 84, -> suugaku + eigo, round(goukei / 2));
では「seiseki」テーブルのデータを取得してみます。
「suugaku」カラムには「goukei」カラムと「heikin」カラムに指定された値の合計が格納され、「heikin」カラムには「goukei」カラムと「heikin」カラムに指定された値の合計を2で割り小数点以下を四捨五入した値が格納されています。
( Written by Tatsuo Ikura )