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

SQL文のステートメントの中でも特に使用頻度が高いものがinsertではないでしょうか。簡易な使用方法で、DBへデータの挿入をすることができるSQLのinsertステートメントは非常に使い勝手の良いですね。

一見、レコードを挿入するためだけのシンプルなSQLステートメントに見えるinsertですが、実はプロのシステムエンジニアでも「知らなかった!」と驚かれるような使用方法があります。

今回の記事ではSQL insertの使用方法を徹底的に解説していきます。使用頻度の高いinsert文を使いこなし、DBの単純なハンドリングだけではなく、フレキシブルなWEBアプリケーションを作れるようになりましょう。

本記事の要点
  • SQLにおける「insert」の概要
  • SQL insert文の使い方

SQLのステートメント「insert」とは何か

SQLのステートメント「insert」とは、データベース内のテーブルに行(レコード)を挿入するためのSQL文のことです。insertステートメントはデータベース言語のため、普段WEBアプリケーションを使用していると見えにくいものですが、気づかない間にいろいろな場面で使用しているはずです。

例えば以下のようなシチュエーションでSQLのinsert文を使用しています。

このような例を見ていくとSQLのinsertステートメントの特徴や使いどころがわかってきたのではないでしょうか。SQLのinsertステートメントは主に新しいデータをデータベースに挿入するという場面で使用されることが多いのです。

insertという英単語自体、あまり身近なものではないため、イメージがしづらいかもしれません。しかし、そもそもinsertという英単語には「差し込む」という意味があるため「新しいデータをデータベースに差し込む」というイメージを持っておくといいですね。

ポテパンダの一言メモ

ちなみにSQLというのは、データベースを扱うためのデータベース言語、コンピュータ言語のことです。データベースを扱うためには、コンピュータが理解できる言語で命令を出さなければなりません。SQLはコンピュータが理解できる言語の1つ。データベースを持つWEBアプリケーションを開発する上では、習得必須とも言えるものです。

SQL insertの使い方

SQLのinsertステートメントについての概要を把握していただいた上で、次にSQLのinsertステートメントの具体的な使用方法をご紹介していきましょう。

ポテパンダの一言メモ

本記事では、SQLのinsertステートメントを使用する環境としてMySQLというデータベース管理システムを使用します。MySQLに関する説明は割愛しますが、まだ使用したことがないという方はこれを機に導入してみてください。

単一行(レコード)の挿入

まずはinsert文を使って、最もシンプルに単一の行(レコード)の挿入を行う方法を見ていきましょう。何はともあれ、まずはMySQLを使用して、データベースとテーブルを作成していきましょう。

mysql> CREATE DATABASE potepan;
Query OK, 1 row affected (0.00 sec)
mysql> use potepan
Database changed
mysql> CREATE TABLE staff(id INT(11) AUTO_INCREMENT NOT NULL, name VARCHAR(30) NOT NULL, number VARCHAR(10) NOT NULL,PRIMARY KEY (id));
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO staff (name, number) VALUES ('Taro Tanaka', '111111');
Query OK, 1 row affected (0.00 sec)

SQLのinsertステートメントにおける基本構文は、「INSERT INTO {TABLE_NAME} (COLUMN_NAME1, COLUMN_NAME2, …) VALUES (VALUE1, VALUE2, …」というものです。また、insertステートメントを入力した後の出力結果にも注目しましょう。

Query OK, 1 row affected (0.00 sec)

「Query OK,1 row affected」とあるように、insertステートメントが受理され、1行挿入されたということが記載されています。ちなみに「affect」には「影響を与える」という意味があります。

複数行(レコード)の挿入

次にSQLのinsertステートメントを使用して、複数行の挿入を行ってみましょう。こちらも冗長な書き方に見えますが、仕組みが分かれば簡単に書くことができるようになります。

mysql> INSERT INTO staff (name, number) VALUES ('Hanako Yamada', '222222'),('Takashi Ueda','333333');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

先ほどの単一行挿入との違いは、挿入したい数だけVALUESの後に中身を連ねていくということだけです。挿入したい内容が複数あるのであれば、単一行挿入を何度も繰り返すよりも、上記のようにSQLのinsertステートメントを使用して複数行挿入をした方が効率的に書くことができます。

またinsertステートメントの後の出力にも注目しましょう。

Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

2つのレコードを挿入したため「2 rows affected」となっています。

他テーブルからの挿入

他テーブルのレコードをそのまま、対象テーブルに挿入したい場合もあるはずです。そのようなときには、以下のようなinsertステートメントを利用することができます。

INSERT INTO staff2 SELECT * FROM staff WHERE NAME IN ('Taro Tanaka');

このように記載することによって、staffテーブルのNAMEカラムに「Taro Tanaka」というデータが挿入されているレコードをstaff2テーブルへ挿入することができます。テーブルをまたいでデータベースを使用する際には便利なので覚えておきたいですね。

まとめ

今回の記事ではSQL insertの使用方法を徹底的に解説していきました。使用頻度の高いinsert文を使いこなし、単純なデータベースのハンドリングだけではなく、フレキシブルなWEBアプリケーションを作れるようになりましょう。

また今回ご紹介した方法以外にもinsertステートメントにはさまざまな使い方があります。奥の深いステートメントなので、ぜひ積極的にリサーチし、insert文を使いこなせるようになりましょう。

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

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

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

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

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

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

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

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

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

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

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