SQL「INSERT INTO」の使い方とは?構文からデータ挿入方法まで解説
SQL「INSERT INTO」の使い方と実践例
SQLは、世界的に利用されているデータベース言語の1つです。
大量のデータを取得したり、更新や削除を行ったりと、幅広いシーンで活用されています。
本記事では、SQLの中でも特に使用頻度が高い「INSERT INTO」について詳しく解説します。
「INSERT INTO」とは?
INSERT INTOとは、データベースのテーブルにデータを登録する際に使用するステートメントです。
「挿入する」という意味を持つ通り、新しい情報をテーブルへ追加する役割を担っています。
SQLは、大規模なデータの操作や効率的なデータ変更を行うために欠かせない言語です。
一般的に、DBMS(データベース管理システム)を制御するために使用され、リレーショナルデータベースに対して命令を送ります。
リレーショナルデータベースは、相互に関連するデータポイントをテーブル形式で管理する仕組みのことです。
一見すると複雑そうに見えますが、基本の書き方を覚えれば汎用的に活用できます。
INSERT INTOの基礎知識
テーブルに新しいデータを登録するための基本命令です。
SQLの中でも最も頻繁に使用されるステートメントの1つです。
リレーショナルデータベースを操作するための標準的な構文です。
関連記事
プログラム言語(プログラミング言語)とは?できること・代表例・選び方を初心者向けに解説
「INSERT INTO」を使う場面
INSERT INTOは、特定のテーブルに新しいレコードを追加したい場面で使用されます。
データベース内には複数のテーブルが存在し、それぞれデータの種類ごとに分類して保存されています。
このテーブルの構造は、Excelのシートをイメージすると非常に分かりやすいです。
Excelにおける「行」にあたる部分を、データベースでは「レコード」と呼びます。
会員サイトの新規登録や、ECサイトの注文履歴の保存など、情報を蓄積するあらゆる場面でこの構文が活躍します。
- Webアプリケーションの会員登録処理
- ECサイトの商品注文データの保存
- ブログシステムの新規記事投稿
- 顧客管理システムの連絡先追加
- 在庫管理システムの商品登録
関連記事
PHPとは?初心者向けに特徴やHTMLとの違い、できることをわかりやすく解説
「INSERT INTO」の基本構文
SQLを使いこなすために、まずはINSERT INTOの基本的な書き方を確認しましょう。
基本構文の書式
最も一般的なのは、登録先となるテーブルの列名を指定して値を挿入する方法です。
INSERT INTO テーブル名 (列名1, 列名2,…) VALUES (値1, 値2,…);
この書式では、指定した列名とVALUES句の中身が順番に対応する仕組みになっています。
また、MySQLなどの特定の環境では、関数を用いて動的な値を挿入することも可能です。
例えば、現在の日付から曜日を取得して自動的に登録するといった高度な処理も行えます。
構文パターンの種類
INSERT INTOには、用途に応じて複数の記述パターンがあります。
- 列名を指定する標準的な形式
- 列名を省略してすべての列に値を挿入する形式
- サブクエリを使用して他のテーブルからデータを取得する形式
- 複数レコードを一度に挿入する一括挿入形式
実際のクエリ
「サブクエリ」を利用すると、別のテーブルから取得した結果をそのまま挿入することができます。
既存のデータを活用して新しいレコードを作成したい場合に非常に効率的な手法です。
INSERT INTO students (stu_no, mgr_name) VALUES (‘00101’, (SELECT name FROM staff WHERE id = ‘A1’));
関連記事
VBAとは?マクロとの違いやできること、習得のメリットを初心者向けに解説
MySQLで「INSERT INTO」を使ってみよう
MySQLは、世界中で広く利用されているオープンソースのリレーショナルデータベースです。
現在はOracle社が提供しており、誰でも自由に使用できるのが大きな特徴です。
知識を定着させるために、実際に手を動かしながら操作手順を確認してみましょう。
MySQLにログイン
まずはMySQLサーバーにログインし、操作可能な状態にする必要があります。
インストールが済んでいない場合は、Homebrewなどのパッケージ管理ツールから導入してください。
$ sudo mysql -u root -p
テーブルの作成
データを挿入する前に、まずは器となるデータベースとテーブルを作成します。
「CREATE DATABASE」で箱を作り、その後「USE」コマンドで使用するデータベースを指定します。
準備ができたら、以下のようなコマンドでデータの項目を定義したテーブルを作成しましょう。
- データベースを作成する(CREATE DATABASE)
- 使用するデータベースを選択する(USE)
- テーブル構造を定義して作成する(CREATE TABLE)
- テーブルが正常に作成されたことを確認する(SHOW TABLES)
CREATE TABLE foods(food_id INT, name VARCHAR(50), price INT);
レコードの追加
いよいよINSERT INTOを用いて、テーブルにレコードを追加していきます。
単一のレコードを追加
まずは、1件のデータを登録する最もシンプルな操作を試してみましょう。
INSERT INTO foods(food_id, name, price) VALUES(1, ‘Apple’, 100);
実行後に「Query OK」と表示されれば、正常に挿入が完了したサインです。
複数のレコードを追加
一度の命令で複数のレコードをまとめて追加することも可能です。
INSERT INTO foods(food_id, name, price) VALUES(2, ‘Beef’, 400), (3, ‘Chicken’, 800);
VALUESの後にカンマ区切りで値を並べることで、効率的にデータを登録できます。
関連記事
【VBA入門】Cellsの使い方完全ガイド|Rangeとの違いや変数での指定方法
INSERT INTOでよくあるエラーと対処法
実際にINSERT文を使用する際、初心者がつまずきやすいエラーがいくつか存在します。
事前に対処法を知っておくことで、スムーズな開発を進められるでしょう。
よくあるエラー
- データ型の不一致エラー
- 列数と値の数の不一致
- 文字列の引用符忘れ
- NOT NULL制約違反
- 主キーの重複エラー
対処法
- テーブル定義を事前に確認する
- 列名と値の順序を照合する
- 文字列は必ずシングルクォートで囲む
- 必須項目の値を必ず指定する
- ユニーク制約のある列の値を確認する
関連記事
VScodeとは?インストール方法から使い方、便利な拡張機能まで完全解説
INSERT INTOのパフォーマンス向上テクニック
大量のデータを扱う場面では、パフォーマンスの最適化が重要になります。
効率的な挿入処理を実現するための実践的なテクニックをご紹介します。
- 一括挿入(BULK INSERT)を活用する
- トランザクションを適切に使用する
- インデックスの影響を考慮する
- バッチ処理で大量データを分割する
- LOAD DATA INFILE文を検討する
まとめ
本記事では、SQLの基本であるINSERT INTOの使い方について幅広く解説しました。
データの追加はデータベース操作の第一歩であり、全ての開発の土台となる重要な処理です。
一見すると難しそうなSQLですが、実際に動かしてみることで直感的に理解できるはずです。
まずはこのINSERT文をマスターし、自由自在にデータを操れるエンジニアを目指しましょう。
正しい知識を身につけることで、あらゆる業務の効率化を大きく進めることが可能です。
よくある質問
INSERT INTOとはどのような意味ですか?
データベースのテーブルに新しいデータを登録するための命令です。日本語では「〜の中に挿入する」という意味合いを持ちます。
一度にたくさんのデータを追加できますか?
はい、可能です。VALUES句の後に複数の値をカンマで区切って記述することで、一度の命令で大量のレコードを一括登録できます。
列名を省略してデータを挿入することはできますか?
可能ですが推奨されません。列名を省略する場合は、テーブル作成時に定義したすべての列に対して、順番通りに値を指定する必要があります。
エラーが発生した場合の確認方法は?
MySQLではSHOW ERRORS;コマンドでエラーの詳細を確認できます。また、テーブル構造はDESCRIBE テーブル名;で確認可能です。
