サイト名変更・お引越しのお知らせ

MySQLでデータ追加(INSERT)方法を解説

MySQLでデータを追加(INSERT)する方法を解説します。

バージョン
  • MySQL 8.0

環境準備

MySQLの環境を準備しましょう。

すでにある方はスキップで良いですが、まだの方はこちらの記事でローカル環境にDockerを使ってMySQLの環境を作成しましょう。

Dockerでデータを永続化しつつMySQLの環境を構築する方法を解説

さらに準備として、testデータベースにproductsテーブルを作成しておきます。

testデータベースを作成

mysql> create database test;

productsテーブルを作成

mysql> CREATE TABLE `products` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50),
  `category` varchar(10),
  PRIMARY KEY  (`id`)
);

データ追加方法

データの追加には、INSERT文を使います。

複数方法があるので、それぞれ解説します。

カラムを指定して追加

カラム名を指定してデータを追加するにはこのように書きます。

INSERT INTO テーブル名 (カラム名1, カラム名2) VALUES (値1, 値2);

namecategoryに値を追加

mysql> INSERT INTO products (name, category) VALUES ('apple', 'fruits');

productsデータ取得

テーブルのデータを取得するには、SELECT * FROM productsで取得できます。

データが追加されていることが分かりますね。

カラムを指定せずに追加

カラム名を指定せずにデータを追加するには、このように書きます。

INSERT INTO テーブル名 VALUES (値1, 値2);

namecategoryに値を追加

mysql> INSERT INTO products VALUES (2, 'orange', 'fruits');

メモ

どちらのケースも、値を指定しない場合はデフォルト値が入ります。

NOT NULLを制約が設定されていたり、データ型と異なるデータを追加しようとするとエラーが発生します。

複数のデータを追加

これまで1つのデータを追加する方法を紹介しましたが、複数のデータをまとめて追加する方法を解説します。

複数のデータを追加するには、このように書きます。

INSERT INTO テーブル名 VALUES (値1, 値2), (値1-1, 値1-2);

カラムを指定して複数のデータを追加

mysql> INSERT INTO products (name, category) VALUES ('apple', 'fruits'), ('orange', 'fruits'), ('broccoli', 'vegetables');

productsデータ取得

指定した3つのデータが追加されていることが分かりますね。

カラムを指定せずに複数のデータを追加

mysql> INSERT INTO products VALUES (1, 'apple', 'fruits'), (2, 'orange', 'fruits'), (3, 'broccoli', 'vegetables');

デフォルト値を追加

追加する値が空で、デフォルト値を追加したい場合の方法を解説します。

デフォルト値を追加

mysql> INSERT INTO products (name, category) VALUES ('apple', default);

モグモグさん

defaultを使うと、テーブルの構造の設定に基づいたデフォルト値が設定されます。

このケースだと特に指定はしていないので、NULLが追加されます。

全てのカラムにデフォルト値を追加

全てのカラムでデフォルト値を設定する場合はこのように書きます。

mysql> INSERT INTO products () VALUES ();

モグモグさん

このケースだと、namecategoryカラムにNULLが挿入されます。

まとめ

MySQLでデータを追加(INSERT)する方法を解説しました。

基本的な内容ですが、使い方を覚えておきましょう。