続いて作成した categories テーブルにレコードを作成する方法を見ていきましょう。

SQLにおいてテーブルにレコードを作成するには insert 文を使います。
insert into categories (id, title) values (1, 'Programming');
insert 文は次のような構文になります。
insert into テーブル名 (列名, ...) values (データ, ...);
さきほどのSQL文の場合はレコードの登録対象のテーブル名は categories テーブルです。テーブル名のあとの()の中には列名を記載するので、id 列、title 列を定義しています。データを登録しない列名は省略しても大丈夫です。それから values のあとの()の中には実際に登録するデータを , で区切って並べていきます。データの並び順はさきほどの列名の並び順と関係しているので、この場合、先頭のデータが id 列、 2つ目のデータが title 列に登録されます。
insert into categories values (1, 'Programming');のように列名を省略することもできます。この場合、テーブルのすべての列名が登録の対象となります。
それから values で指定するデータに注目すると ' シングルクォーテーションで囲まれているものとそうでないものがあります。SQLでは文字型データや日付型データは ' シングルクォーテーションで囲む必要があります。数値型データに ' シングルクォーテーションは不要です。
それでは実際にMySQLクライアントプログラムから insert 文を実行してみましょう。
MariaDB [eldb]> insert into categories (id, title) values (1, 'Programming');
Query OK, 1 row affected (0.01 sec)
MariaDB [eldb]>
Query OK と表示されればSQLは正しく処理されています。
複数レコードの登録
categories テーブルに1件のレコードを作成できたので、ここではあと2件レコードを作成してみようと思います。
insert into categories (id, title) values (2, 'Design');
insert into categories (id, title) values (3, 'Marketing');
上記の2つのSQLを実行すれば categories テーブルには合計3件のレコードが作成されます。実際にMySQLクライアントプログラムからSQLを実行してみましょう。
MariaDB [eldb]> insert into categories (id, title) values (2, 'Design');
Query OK, 1 row affected (0.00 sec)
MariaDB [eldb]> insert into categories (id, title) values (3, 'Marketing');
Query OK, 1 row affected (0.01 sec)
MariaDB [eldb]>
Query OK と表示されればSQLは正しく処理されています。

主キー制約について
これまでに3件のレコードが登録できたので、もう1件レコードを追加してみましょう。
insert into categories (id, title) values (3, 'Music');
実はこのSQL文を実行すると次のようなエラーが出力されます。
MariaDB [eldb]> insert into categories (id, title) values (3, 'Music');
ERROR 1062 (23000): Duplicate entry '3' for key 'PRIMARY'
MariaDB [eldb]>
エラーメッセージは ERROR 1062 (23000): Duplicate entry '3' for key 'PRIMARY' となっているのがわかります。これは categories テーブルの id 列に定義した主キー制約(primary key制約)に違反しているということを意味しています。主キー制約を定義した列のデータは一意である(重複してはいけない)必要があるため、id 列に 3 という値は指定できないのです。
categoriesテーブルにはすでにidが3のレコードは登録済みのため、主キー制約(primary key制約)に違反するということになります。
レコードの作成方法については以上です。次は作成した3件のレコードを表示する(検索する)方法について見ていきましょう。
まとめ
- テーブルにレコードを作成するには
insert文を使う - 文字型データや日付型データなどは
''で囲む必要がある - レコード追加時には制約(主キー制約など)に注意する