Webサイト制作コースのお申し込みはこちら

SQLのステートメントの中でも最も登場する頻度の高いものの1つに「INSERT INTO」があります。本記事では、「INSERT INTO」について分かりやすく解説をしつつ、実際に手を動かして学べる「INSERT INTO」ハンズオンをご紹介していきます。

SQLの「INSERT INTO」とは?

SQLの「INSERT INTO」とはデータベースのテーブル上にデータを登録する際に使用されるステートメントの構文です。

SQLには基本的な機能として、「データベースやテーブルの作成・削除」と「データの挿入・削除・更新・取得」があります。そして「INSERT INTO」は、「データの挿入」の役割を担うステートメントの構文なのです。

ポテパンダの一言メモ

そもそも「INSERT」という英単語には「挿入」の意味があります。テーブルの上にデータを「挿入する」という意味合いでステートメントに「INSERT」という名前がつけられたのでしょう。

「INSERT」というステートメントを使用する際には、以下のように2通りの構文どちらかを記述する必要があります。

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

2つを見比べてみると、テーブル名の後にカラム名を書いているかどうかの違いがありますね。2つ目のINSERTステートメントのように省略することも可能ですが、明示的にSQL文を記述する必要がある場合には1つ目のような記述の仕方をします。

「INSERT INTO」が「INSERT」ステートメントの構文であると書いたのは、上記の例のように「INSERT」の後に「INTO」が必要であるからです。

ポテパンダの一言メモ

SQLステートメントの構文はセットで記憶しておくと、スムーズにSQL文を書くことができて便利です。以下はSQLステートメントの一例です。

  • 「UPDATE テーブル名 SET カラム名1 = 値1, カラム名2 = 値2, … (WHERE 条件);」
  • 「DELETE FROM テーブル名 (WHERE 条件);
  • 「SELECT カラム名1, カラム名2, … FROM テーブル名 (WHERE 条件);」

【関連記事】
▶︎SQL select文のサンプル集 結合、ソート、別テーブル生成の記述方法は?
▶︎【実例で学ぶ】SQL「UPDATE」文の使い方 基礎・応用編
▶︎【初心者向け】SQLのDELETE文の使い方を現役SE目線で解説

SQLの「INSERT INTO」をMySQLで使ってみよう

それでは、早速「INSERT INTO」を使ってSQLステートメントの動きを体験してみましょう。今回のハンズオンでは、MySQLというデータベースを使用していきます。

準備

「INSERT INTO」を使うためには、データベースとテーブルがなくてはなりません。まずはそれらの準備から行いましょう。

MySQLのインストール

まだMySQLのインストールができていないという場合には、以下のコマンドでHomebrewからインストールを行いましょう。

$ brew install mysql

MySQLのインストールが終了したら、接続します。

$ sudo mysql -u root -p

データベースの作成

ターミナルからMySQLに接続ができたら、早速データベースの作成をしていきます。以下のSQLコマンドをそのまま打ち込んでください。

mysql> CREATE DATABASE potepan;
Query OK, 1 row affected (0.00 sec)

上記のコマンドはSQLの「CREATE」ステートメントです。この「CREATE」ステートメントによって、データベースやテーブルの作成を行うことができます。

【関連記事】
▶︎SQL create tableでテーブル生成 DBMSごとに差異あり

データベースを作成できたら、使用するデータベースを指定しましょう。

mysql> USE potepan;

テーブルの作成

作成したデータベース内に、テーブルを作成してみましょう。

mysql> CREATE TABLE foods(food_id INT, name VARCHAR(50), price VARCHAR(50));               
Query OK, 0 rows affected (0.00 sec)

これでfoodsという名前のテーブルがデータベース上に作成されました。テーブル構造を見るには「DESC」というコマンドが使用できます。

mysql> desc foods;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| food_id | int(11)     | YES  |     | NULL    |       |
| name    | varchar(50) | YES  |     | NULL    |       |
| price   | varchar(50) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

SQLの「INSERT INTO」を使ってみよう!

それでは早速、SQLの「INSERT INTO」を使ってみましょう。

まずは、foodsテーブル内にデータが何も挿入されていないことを確認しておきます。

mysql> SELECT * FROM foods;
Empty set (0.00 sec)

単一のレコードを挿入

まずは単一のレコード挿入にチャレンジしましょう。ここで、レコードという言葉が初めて出てきました。レコードとは、テーブルにおける横の行のことです。

mysql> INSERT INTO foods(food_id, name, price) VALUES('0001', 'Banana', '100');
Query OK, 1 row affected (0.00 sec)

「Query OK, 1 row affected」と表示されると、SQLの「INSERT」ステートメントが成功したこと、そして1行(1 row)のレコードが挿入されたことがわかります。データの取得ができる「SELECT」ステートメントでテーブルの状態を見てみましょう。

mysql> SELECT * FROM foods;
+---------+--------+-------+
| food_id | name   | price |
+---------+--------+-------+
|       1 | Banana | 100   |
+---------+--------+-------+
1 row in set (0.00 sec)

複数のレコードを挿入

次に2つのレコードを挿入してみましょう。

mysql> INSERT INTO foods(food_id, name, price) VALUES('0002', 'Bread', '400'),('0003', 'Meat', '800');
Query OK, 2 rows affected (0.01 sec)

こちらもINSERTステートメントが成功しました。SELECTステートメントでテーブルを見てみましょう。

mysql> SELECT * FROM foods;
+---------+--------+-------+
| food_id | name   | price |
+---------+--------+-------+
|       1 | Banana | 100   |
|       2 | Bread  | 400   |
|       3 | Meat   | 800   |
+---------+--------+-------+
3 rows in set (0.00 sec)

省略形「INSERT」ステートメントを使ってみる

前述の通り、「INSERT」ステートメントには2通りの書き方がありました。念のため、こちらでは省略した形式「INSERT」ステートメントを試してみましょう。

mysql> INSERT INTO foods VALUES('0004', 'Onion', '200');
Query OK, 1 row affected (0.01 sec)

無事にレコードを挿入することができました。こちらの方がSQL文としては短く記述できるため、手間が省けますね。

まとめ

SQLのステートメントの中でも登場する頻度が非常に高い「INSERT INTO」。本記事では、「INSERT INTO」について分かりやすく解説をしつつ、実際に手を動かして学べる「INSERT INTO」ハンズオンをご紹介していきました。

本記事でご紹介したハンズオンをもとに、まずはテーブル上に意図したデータを挿入できるように使い慣れていきましょう。

【関連記事】
▶︎SQL文一覧 基本4大ステートメントのサンプルコード集
▶︎SQL order byでソート指定するサンプルコード集 指定のレコードだけ先頭に並べるには?
▶︎SQLとはどういうもの? 独自拡張と標準SQLの大きな違いって、何?

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。