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 テーブルの中身を確認します。

MySQL でデータの挿入 (INSERT) 1

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 テーブルの中身を確認します。

MySQL でデータの挿入 (INSERT) 2

student_id が 2 ~ 4 で、3 行データが挿入されていますね。


以上、MySQL でテーブルにデータを挿入 (INSERT) する方法をご説明しました。

© 2024 MySQL 入門