★悩み★
・MySQLに新しいデータ(レコード)を追加する方法は?
・データ追加時に多用するINSERTのパターンを知りたい。
・そもそもMySQLのINSERTとは何?基本的な構文は?
こういった「悩み」に答えます。
★本記事の内容★
➀ MySQLのINSERTとは?
➁ INSERTを使ってMySQLのデータを追加する方法
➂ 知っておくと便利なINSERT事例集
これからご紹介する「MySQLのINSERTでデータ追加時に多用する5パターン」を実践したことで、筆者は15分以内でINSERTを用いてMySQLにデータを追加できました。
記事の前半では「INSERTとは?」や「MySQLで使うINSERTの基本的な構文」に関して解説します。
記事の後半では「MySQLでよく使うINSERTの5パターン」と「知っておくと便利なINSERT事例集」を構文と実行例を用いて紹介します。
この記事を読み終えることで、「INSERTを用いてMySQLにデータを新規追加できる」状態になります。
★MySQLとは★
MySQLは、Oracle社が開発しているオープンソースのデータベース管理システムです。MySQLは、YoutubeやWikipediaなどの大規模なサービスに利用されています。
参照:MySQLとは(MySQLの公式サイト)
ちなみに、「MySQLで追加したデータ(レコード)を更新する方法」を知りたい方は、以下の記事をご覧ください。
MySQLのINSERTとは?
「MySQLのINSERTとは?」に関してご紹介します。
★MySQLのINSERT関連の情報★
・INSERTとは?(MySQLにデータ追加するためのコマンド)
・MySQLで使うINSERTの基本的な構文
以降で、上記「MySQLのINSERT関連の情報」の各項目に関してご説明します。
INSERTとは?(MySQLにデータ追加するためのコマンド)
「INSERTとは?(MySQLにデータ追加するためのコマンド)」に関して解説します。
MySQLでよく使うコマンドの1つとして、「INSERT」があります。
MySQLで「INSERT」を使うことで、以下のデータ追加を実現できます。
★MySQLでINSERTを使い実現できること★
・MySQLの指定テーブルにデータを追加
・指定テーブルに一度に複数データを追加
・現在時刻をデータとして追加
・他テーブルにあるデータの一部を指定したテーブルに追加
・NULL値をデータとして挿入
上記のように「MySQLのデータ(レコード)を追加したい」という場合は、「INSERT」を使います。
以上が、「INSERTとは?(MySQLにデータ追加するためのコマンド)」となります。
MySQLで使うINSERTの基本的な構文
「MySQLで使うINSERTの基本的な構文」に関して解説します。
MySQLにおける「INSERT」の基本的な書き方に関して説明しますね。
MySQLでデータ追加をする際に利用する「INSERT」の構文は、以下となります。
★MySQLにおけるINSERTのリファレンス★
・機能
指定したテーブルにデータを追加する
・使い方
INSERT INTO テーブル名 (カラム名1, …) VALUES (カラム1の値, …);
・例
INSERT INTO user (id,name,address) values(2,’tom’,’america’);
・実行結果
userテーブルに「2, ‘tom’, ‘america’」というデータを追加する
・参照
INSERTのリファレンス(MySQL公式サイト)
MySQLにおいて複数データを一度に追加するなどのINSERTの構文に関しては、本記事の後半で解説します。
以上が、「MySQLで使うINSERTの基本的な構文」となります。
MySQLのテーブルにデータ(レコード)を追加したい場合、「INSERT」を使いましょう。
INSERTを使ってMySQLのデータを追加する方法
「INSERTを使ってMySQLのデータを追加する方法」に関してご紹介します。
★MySQLでのINSERTの使い方:データ追加時に多用する4パターン★
・一度に複数データを追加
・省略したINSERTでデータ追加
・SETを使ったINSERTでデータ追加
・他テーブルからSELECTしたデータを追加
MySQLにデータを追加する場合、上記4パターンのINSERTを多用します。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年6月16日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「MySQLでのINSERTの使い方:データ追加時に多用する4パターン」の各項目に関してご説明します。
以降では、MySQL内にテーブルを作成した前提で、各INSERTのパターンをご紹介します。
MySQLのインストール/セットアップ/テーブル作成をされていない方には、以下の記事がオススメです。
>> MySQLのインストール/セットアップ/テーブル作成する手順
一度に複数データを追加
「一度に複数データを追加」に関してご説明します。
INSERTを使えば、MySQLの指定したテーブルに一度で複数データ(レコード)を追加できます。
MySQLの指定テーブルに「一度に複数データ追加」したい場合のINSERTの構文は、以下となります。
★INSERTの構文:MySQLで一度に複数データを追加したい場合★
・使い方
INSERT INTO テーブル名 (カラム名1, …) VALUES (カラム1の値, …), … ;
・例
INSERT INTO user VALUES(3,’bob’,’america’), (4,’ken’,’japan’);
・実行結果
userテーブルに「3,’bob’,’america’」と「4,’ken’,’japan’」を追加する
それでは、MySQLの指定テーブルに複数データを一度で追加するために、以下のINSERTを実行してみましょう。
mysql> INSERT INTO user VALUES(3,'bob','america'), (4,'ken','japan');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from user;
+------+------+-----------+
| id | name | address |
+------+------+-----------+
| 1 | hero | kakedashi |
| 2 | tom | america |
| 3 | bob | america |
| 4 | ken | japan |
+------+------+-----------+
4 rows in set (0.00 sec)
mysql>
コマンド実行後、「bob」と「ken」が表示された場合、「正常にINSERTでMySQLに複数データを一度に追加できた」と判断できます。
以上が、「一度に複数データを追加」となります。
省略したINSERTでデータ追加
「省略したINSERTでデータ追加」に関して解説します。
データ追加する際に利用するINSERTって長いですよね。
実は、MySQLのINSERTには省略形があります。
MySQLにおける「記述を省略したINSERT」の構文は、以下となります。
★省略したINSERTの構文★
・使い方
INSERT INTO テーブル名 VALUES (カラム1の値, カラム2の値, …) ;
・例
INSERT INTO user VALUES(2,’tom’,’america’);
・実行結果
userテーブルに「2,’tom’,’america’」のデータを追加する
それでは、省略したINSERTを使って、MySQLの指定テーブルにデータを追加してみましょう。
mysql> INSERT INTO user VALUES(2,'tom','america');
Query OK, 1 row affected (0.01 sec)
mysql> select * from user;
+------+------+-----------+
| id | name | address |
+------+------+-----------+
| 2 | tom | america |
+------+------+-----------+
1 row in set (0.00 sec)
mysql>
コマンド実行後、「tom」が表示された場合、「正常に省略したINSERTでMySQLにデータを追加できた」と判断できます。
以上が、「省略したINSERTでデータ追加」となります。
SETを使ったINSERTでデータ追加
「SETを使ったINSERTでデータ追加」に関して解説します。
MySQLにデータ追加する場合、SETを用いたINSERTでも実現できます。
MySQLにおいて「SETを使ったINSERT」の構文は、以下となります。
★SETを使ったINSERTの構文★
・使い方
INSERT INTO テーブル名 SET カラム1の名前 = カラム1の値, ……;
・例
INSERT INTO user SET id = 3, name = ‘ken’, address = ‘japan’;
・実行結果
userテーブルに「3,’ken,’japan’」のデータを追加する
それでは、省略したINSERTを使って、MySQLの指定テーブルにデータを追加してみましょう。
mysql> select * from user;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 1 | hero | japan |
| 2 | bob | america |
+------+------+---------+
2 rows in set (0.00 sec)
mysql> INSERT INTO user SET id = 3, name = 'ken', address = 'japan';
Query OK, 1 row affected (0.00 sec)
mysql> select * from user;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 1 | hero | japan |
| 2 | bob | america |
| 3 | ken | japan |
+------+------+---------+
3 rows in set (0.00 sec)
mysql>
コマンド実行後、「ken」が表示された場合、「正常にSETを使ったINSERTでMySQLにデータを追加できた」と判断できます。
以上が、「SETを使ったINSERTでデータ追加」となります。
他テーブルからSELECTしたデータを追加
「他テーブルからSELECTしたデータを追加」に関して解説します。
他テーブルに登録されたデータを指定したテーブルに追加したい場合、INSERTを使います。
MySQLにおいて、「他テーブルに登録されたデータを指定したテーブルに追加」する場合のINSERTの構文は、以下となります。
★INSERTの構文:他テーブルに登録されたデータを追加したい場合★
・使い方
INSERT INTO テーブル名1 (カラム名1, …, ) SELECT * from テーブル名2;
・例
INSERT INTO user2 (id,name,address) SELECT * from user;
・実行結果
user2テーブルにuserテーブルの全データを追加する
それでは、INSERTを使って、他テーブルに登録されたデータを追加してみましょう。
mysql> create table user2 (id int, name varchar(10), address varchar(10));
Query OK, 0 rows affected (0.01 sec)
mysql> select * from user;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 1 | hero | japan |
| 2 | bob | america |
| 3 | ken | japan |
+------+------+---------+
3 rows in set (0.00 sec)
mysql> select * from user2;
Empty set (0.00 sec)
mysql> INSERT INTO user2 (id,name,address) SELECT * from user;
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from user2;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 1 | hero | japan |
| 2 | bob | america |
| 3 | ken | japan |
+------+------+---------+
3 rows in set (0.00 sec)
mysql>
コマンド実行後、「user2テーブルにデータが追加」された場合、「正常にINSERTを使って他テーブルのデータを追加できた」と判断できます。
以上が、「他テーブルからSELECTしたデータを追加」となります。
以上が、MySQLのデータ追加時に多用するINSERTの5パターンとなります。
知っておくと便利なINSERT事例集
「知っておくと便利なINSERT事例集」に関してご紹介します。
★知っておくと便利なINSERT事例集★
・現在時刻を挿入
・追加するデータにNULL値を挿入
・カラムのデフォルト値を用いたデータ追加
MySQLにデータを追加する場合、上記3パターンのINSERTをインターネット上で調べることが何気にあります。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年6月16日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「知っておくと便利なINSERT事例集」の各項目に関してご説明します。
現在時刻を挿入
「現在時刻を挿入」に関して解説します。
MySQL内でINSERTを使うことで、現在時刻に関するデータを追加できます。
MySQLにおいて、「現在時刻に関するデータ追加する」場合のINSERTの構文は、以下となります。
★INSERTの構文:現在時刻に関するデータを追加したい場合★
・使い方
INSERT INTO テーブル名 VALUES (NOW(), カラム2の値, …) ;
または
INSERT INTO テーブル名 VALUES (CURRENT_TIMESTAMP(), カラム2の値,) ;
または
INSERT INTO テーブル名 VALUES (LOCALTIME(), カラム2の値, …) ;
または
INSERT INTO テーブル名 VALUES (LOCALTIMESTAMP(), カラム2の値, …) ;
・例
INSERT INTO user3 VALUES (1, ‘ken’, ‘japan’, NOW());
・実行結果
userテーブルに「1,’ken,’japan’, ‘2022-06-16 07:36:21’」を追加する
それでは、MySQLにおいて「現在時刻に関するデータ追加」をするためのINSERTを実行してみましょう。
mysql> create table user3 (id int, name varchar(10), address varchar(10), last_login_time text);
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO user3 VALUES (1, 'ken', 'japan', NOW());
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO user3 VALUES (1, 'ken', 'japan', CURRENT_TIMESTAMP());
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO user3 VALUES (1, 'ken', 'japan', LOCALTIME());
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO user3 VALUES (1, 'ken', 'japan', LOCALTIMESTAMP());
Query OK, 1 row affected (0.00 sec)
mysql> select * from user3;
+------+------+---------+---------------------+
| id | name | address | last_login_time |
+------+------+---------+---------------------+
| 1 | ken | japan | 2022-06-16 07:36:21 |
| 1 | ken | japan | 2022-06-16 07:36:39 |
| 1 | ken | japan | 2022-06-16 07:36:48 |
| 1 | ken | japan | 2022-06-16 07:36:57 |
+------+------+---------+---------------------+
4 rows in set (0.00 sec)
mysql>
コマンド実行後、「user3テーブルに現在時刻のデータが追加」された場合、「正常にINSERTを使って現在時刻に関するデータを追加できた」と判断できます。
以上が、「現在時刻を挿入」となります。
追加するデータにNULL値を挿入
「追加するデータにNULL値を挿入」に関して説明します。
MySQLにおいて、あるカラムに追加するデータがない場合、INSERTでNULL値を挿入することがあります。
MySQLにおいて、「INSERTを使ってNULL値を挿入」する際のINSERT構文は、以下となります。
★INSERTの構文:NULL値を含むデータを追加したい場合★
・使い方
INSERT INTO テーブル名 VALUES (NULL, カラム2の値, …) ;
または
INSERT INTO テーブル名 VALUES (null, カラム2の値, …) ;
・例
INSERT INTO user3 VALUES (1, ‘ken’, ‘japan’, NULL);
・実行結果
userテーブルに「1,’ken,’japan’, NULL」のデータを追加する
それでは、INSERTを使って、NULL値を含むデータを追加してみましょう。
mysql> select * from user3;
Empty set (0.00 sec)
mysql> INSERT INTO user3 VALUES (1, 'ken', 'japan', NULL);
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO user3 VALUES (2, 'bob', 'america', null);
Query OK, 1 row affected (0.00 sec)
mysql> select * from user3;
+------+------+---------+-----------------+
| id | name | address | last_login_time |
+------+------+---------+-----------------+
| 1 | ken | japan | NULL |
| 2 | bob | america | NULL |
+------+------+---------+-----------------+
2 rows in set (0.01 sec)
mysql>
コマンド実行後、「user3テーブルにNULLのデータが追加」された場合、「正常にINSERTを使ってNULL値を含むデータを追加できた」と判断できます。
以上が、「追加するデータにNULL値を挿入」となります。
カラムのデフォルト値を用いたデータ追加
「カラムのデフォルト値を用いたデータ追加」に関して解説します。
カラムにデフォルト値を設定することで、INSERTでデフォルト値を挿入できるようになります。
MySQLにおいて、「INSERTでデフォルト値を含むデータ追加」する際の構文は、以下となります。
★INSERTの構文:デフォルト値を含むデータを追加したい場合★
・使い方
INSERT INTO テーブル名 VALUES (NULL, カラム2の値, …) ;
または
INSERT INTO テーブル名 () VALUES ();
・例1:一部のカラムをデフォルト値にする場合
INSERT INTO user3 VALUES (2, ‘bob’, ‘america’, default);
・実行結果1
userテーブルに「2,’bob’,’america’, NULL」のデータを追加する
・例2:全カラムをデフォルト値にする場合
INSERT INTO user3 () VALUES ();
・実行結果2
userテーブルに「NULL,NULL,NULL, NULL」のデータを追加する
それでは、INSERTを使って、デフォルト値を含むデータを追加してみましょう。
mysql> INSERT INTO user3 () VALUES ();
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO user3 VALUES (2, 'bob', 'america', default);
Query OK, 1 row affected (0.00 sec)
mysql> select * from user3;
+------+------+---------+-----------------+
| id | name | address | last_login_time |
+------+------+---------+-----------------+
| NULL | NULL | NULL | NULL |
| 2 | bob | america | NULL |
+------+------+---------+-----------------+
2 rows in set (0.00 sec)
mysql>
コマンド実行後、「user3テーブルにNULLのデータが追加」された場合、「正常にINSERTを使ってデフォルト値を含むデータを追加できた」と判断できます。
以上が、「カラムのデフォルト値を用いたデータ追加」となります。
INSERTを使うことで「現在時刻の追加」「NULL値のデータ追加」「デフォルト値で挿入」を実現できます。
時たま使うことがあるので、覚えておきましょう。
ちなみに、「MySQLを基礎から体系的に学びたい」や「その他のMySQLのコマンドを知りたい」方は、以下の参考書がオススメです。
動画で学びたい方には、以下をオススメします。
【まとめ】MySQLのINSERTでデータ追加時に多用する5パターン
今回の記事を通して、「MySQLのINSERTでデータ追加時に多用する5パターン」をご紹介することで、以下の悩みを解消しました。
★悩み★
・MySQLのテーブルに新しいデータを追加する手順や方法を知りたい。
・MySQLでinsertを用いてデータを追加する手順を知りたい。
・MySQLでinsertを用いて複数データを一度に追加はできるのかな。
「MySQLでデータを追加する方法は?」や「INSERTの使い方は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント