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);
nameとcategoryに値を追加
mysql> INSERT INTO products (name, category) VALUES ('apple', 'fruits');
テーブルのデータを取得するには、SELECT * FROM products
で取得できます。
データが追加されていることが分かりますね。
カラムを指定せずに追加
カラム名を指定せずにデータを追加するには、このように書きます。
INSERT INTO テーブル名 VALUES (値1, 値2);
nameとcategoryに値を追加
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');
指定した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 ();
モグモグさん
このケースだと、nameとcategoryカラムにNULLが挿入されます。
まとめ
MySQLでデータを追加(INSERT)する方法を解説しました。
基本的な内容ですが、使い方を覚えておきましょう。