MySQL でデータの挿入 (INSERT)
ここでは MySQL でテーブルにデータを挿入 (INSERT) する方法をご説明します。
INSERT 文でデータを 1 行挿入する
MySQL でテーブルにデータを挿入するには INSERT 文を使います。
1 レコードを挿入する、基本の INSERT 文の構文は次の通りです。
INSERT INTO テーブル名
(カラム名1, カラム名2, カラム名3, ...)
VALUES
(値1, 値2, 値3, ...);
カラム1 に値1 が、カラム2 に値2 が、と順番に挿入されます。
NULL のカラムや、NOT NULL でもデフォルト値の指定されているカラムや AUTO_INCREMENT が指定されているカラムは指定しなくても大丈夫です。
それでは「MySQL でテーブルの作成 (CREATE TABLE)」で以下のスクリプトで生成した students テーブルに、INSERT 文を使って 1 行データを挿入してみましょう。
CREATE TABLE students (
student_id INT NOT NULL AUTO_INCREMENT,
student_number VARCHAR(10) NOT NULL,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
middle_name VARCHAR(50) NULL,
birthday DATE NOT NULL,
gender ENUM ('M','F') NOT NULL,
paid_flag BOOL NOT NULL DEFAULT FALSE,
PRIMARY KEY (student_id),
UNIQUE KEY (student_number),
CHECK (birthday >= '2000-01-01')
);
students テーブルに 1 行挿入するスクリプトは次の通りです。
INSERT INTO students
(student_number, first_name, last_name, birthday, gender)
VALUES
('S000001', 'Yuta', 'Tanaka', '2025-01-15', 'M');
student_id カラムはデータを挿入することもできますが、AUTO_INCREMENT で採番されて欲しいので指定していません。
middle_name カラムは NULL が許可されているカラムで今回は必要ないので指定していません。
paid_flag カラムはデフォルト値の FALSE(0) でかまわないので、指定していません。
詳しくは別のページで後ほどご説明しますが、SELECT * FROM テーブル名; でテーブルの全カラム全行を取得することができます。
SELECT * FROM students;
上の INSERT 文を実行して、students テーブルの中身を確認します。
student_id が 1 で、1 行データが挿入されていますね。
INSERT 文でデータを複数行挿入する
先ほどは INSERT 文を使って 1 行データを挿入しましたが、複数行まとめて挿入することもできます。
複数行挿入したい時は VALUES に続けて、カンマで区切って値のセットを指定します。
複数行を一度に挿入する、基本の INSERT 文の構文は次の通りです。
INSERT INTO テーブル名
(カラム名1, カラム名2, カラム名3, ...)
VALUES
(値1-1, 値1-2, 値1-3, ...),
(値2-1, 値2-2, 値2-3, ...),
(値3-1, 値3-2, 値3-3, ...),
...
(値n-1, 値n-2, 値n-3, ...);
例えば、students テーブルに INSERT 文で 3 行一度に挿入するには、次のようにできます。
INSERT INTO students
(student_number, first_name, last_name, birthday, gender)
VALUES
('S000002', 'Sakura', 'Hata', '2025-07-07', 'F'),
('S000003', 'Aya', 'Tanaka', '2025-12-11', 'F'),
('S000004', 'Hiroki', 'Suzuki', '2026-02-23', 'M');
上の INSERT 文を実行して、students テーブルの中身を確認します。
student_id が 2 ~ 4 で、3 行データが挿入されていますね。
以上、MySQL でテーブルにデータを挿入 (INSERT) する方法をご説明しました。