SQL - INSERT Query: A Beginner's Guide

こんにちは、未来のデータベース魔术師たち!今日は、SQLのINSERTクエリの世界に興味深い旅をすることになります。あなたの近所の親切なコンピュータ教師として、私はあなたをこの基本概念を通じて、価値のある情報でデータベースを埋めるのを助けるためにここにいます。で、コーヒー(または、あなたが好む場合は茶)を一杯取り、一緒に潜りましょう!

SQL - Insert Query

The SQL INSERT INTO 文

INSERT文とは何か?

美しく設計されたデータベーステーブルがあるとしましょうが、中は空です。どれほど悲しいことでしょうか!ここでINSERT文が救助に駆けつけます。新しいレコード(行)をテーブルに追加できる魔法の呪文のようなものです。

基本的な構文

INSERT文の基本的な構文は以下の通りです:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

これを分解すると:

  • INSERT INTO はSQLに新しいデータを追加したいことを伝えます
  • table_name はデータを追加するテーブルを指定します
  • 括弧内の列は埋めたい列です
  • VALUES キーワードは実際に挿入するデータを導入します

例1: 単一の行を追加

students というテーブルがあり、idnameage という列があるとします。新しい学生を追加する方法は以下の通りです:

INSERT INTO students (id, name, age)
VALUES (1, 'John Doe', 20);

これはstudentsテーブルにIDが1、名前が"John Doe"、年齢が20歳の新しい行を追加します。

例2: 複数の行を追加

一度に複数の学生を追加したい場合はどうしますか?問題ありません!それはもできます:

INSERT INTO students (id, name, age)
VALUES
(2, 'Jane Smith', 22),
(3, 'Bob Johnson', 21),
(4, 'Alice Brown', 23);

この単一のクエリでテーブルに3人の新しい学生を追加します。効率的ですね?

他のテーブルからデータをコピーしてテーブルに挿入する

時々、他のテーブルからデータをコピーして別のテーブルに挿入したいことがあります。SQLはこれを非常に簡単にします!

構文

他のテーブルからデータを挿入するための構文は以下の通りです:

INSERT INTO table1 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table2
WHERE condition;

例3: テーブル間でデータをコピー

honor_roll というテーブルがあり、students テーブルから21歳以上のすべての学生を追加したいとします:

INSERT INTO honor_roll (student_id, student_name)
SELECT id, name
FROM students
WHERE age >= 21;

このクエリはstudentsテーブルの21歳以上のすべての学生のidnamehonor_rollテーブルにコピーします。

指定された列だけにデータを挿入する

時々、データを挿入する際にすべての列を埋める必要はありません。SQLはこのような柔軟性があります!

例4: 部分的なデータを挿入

新しい学生を追加しますが、この今回は彼女の年齢を知りません:

INSERT INTO students (id, name)
VALUES (5, 'Eva Green');

この場合、Evaのage列にはNULL値(またはテーブル定義に指定されたデフォルト値)が設定されます。

例5: デフォルト値を使用する

テーブルにデフォルト値が定義されている特定の列に対して明示的に使用することができます:

INSERT INTO students (id, name, age)
VALUES (6, 'Frank White', DEFAULT);

これはage列がデフォルト値を持つと仮定しています。

プロのヒントとベストプラクティス

  1. 常に列をリストアップする:すべての列に対して値を挿入する場合でも、明示的に列をリストアップすることでコードが読みやすくなり、エラーが減ります。

  2. トランザクションを使用する:複数の行を追加する場合、INSERT文をトランザクションでラップすることで、すべての挿入が成功するか、すべてが失敗するかのいずれかになります。

  3. データを検証する:挿入する前に、データがテーブルの要求(データ型、制約など)を満たしていることを確認します。

  4. 自動インクリメント列に注意する:列が自動インクリメント(例えばID列)である場合、通常はINSERT文で値を指定する必要はありません。

一般的なINSERTメソッド

以下の表は、私たちがカバーしたINSERTメソッドを要約しています:

メソッド 説明
基本的なINSERT 指定された値で単一の行を挿入 INSERT INTO table (col1, col2) VALUES (val1, val2);
複数行のINSERT 一つのステートメントで複数の行を挿入 INSERT INTO table (col1, col2) VALUES (val1, val2), (val3, val4);
SELECTを使用したINSERT 他のテーブルからデータをコピーして挿入 INSERT INTO table1 SELECT col1, col2 FROM table2 WHERE condition;
部分的なINSERT 指定された列にデータを挿入 INSERT INTO table (col1) VALUES (val1);
デフォルト値を使用したINSERT 特定の列にデフォルト値を使用 INSERT INTO table (col1, col2) VALUES (val1, DEFAULT);

そして、あなたたちの熱心な学習者たち!あなたたちはSQLのINSERTクエリの世界への第一歩を踏み出しました。実践が完璧を生むことを忘れずに、これらの概念を試してみてください。間もなく、あなたたちはプロのようにデータを挿入するようになるでしょう!

ハッピーコーディング、そしてあなたのデータベースが常に完璧に埋められることを祈っています!

Credits: Image by storyset