PostgreSQL - INSERTクエリ:ビギナーズガイド

こんにちは、未来のデータベースの魔法使いさんたち!今日は、PostgreSQLの素晴らしい世界に飛び込み、最も基本的な操作の一つであるINSERTクエリについて学びます。プログラミングが初めてであっても心配しないでください。私はこれまでに多くの生徒を指導してきましたので、ステップバイステップで説明します。では、コーヒー(またはあなたが好きなお茶)を一杯取り、始めましょう!

PostgreSQL - Insert Query

INSERTクエリとは?

シンタックスや例に飛び込む前に、INSERTクエリが実際に何をしているのかを理解しましょう。あなたが大きな本(データベース)を持っていて、その中に複数のページ(テーブル)があるとします。INSERTクエリは、これらのページの其一に新しいエントリを書くようなものです。これは、データベースのテーブルに新しい情報を追加する方法です。

シンタックス

まず、PostgreSQLにおけるINSERTクエリの基本的なシンタックスを見てみましょう:

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

これに驚かないでください!以下に分解します:

  • INSERT INTO:これは、私たちが新しいデータを追加したいと伝える方法です。
  • table_name:これは、私たちがデータを追加したいテーブルの名前です。
  • (column1, column2, column3, ...):これらは、私たちがデータを入力したいテーブルのカラムです。
  • VALUES:このキーワードは、実際に挿入するデータを導入します。
  • (value1, value2, value3, ...):これらは、指定したカラムに追加する値です。

例1:単一行の挿入

例えば、studentsという名前のテーブルがあり、idnameageというカラムがあるとします。新しい学生を追加する方法は以下の通りです:

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

ここで何が起こっているのでしょうか?新しい学生をIDが1、名前がJohn Doe、年齢が20歳で追加しています。まるで新しい学生がクラスに加入するフォームを記入しているようなものです!

例2:複数行の挿入

PostgreSQLは一度に複数行を挿入することができます。まるで一度に複数の学生を入学させるようなものです:

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

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

例3:デフォルト値を使った挿入

時々、テーブルには特定のカラムにデフォルト値が設定されています。これらを指定しなくても構いません:

INSERT INTO students (name, age)
VALUES ('Charlie Davis', 19);

この場合、idカラムが自動インクリメントに設定されていると、PostgreSQLは次に利用可能なIDを自動的に割り当てます。

出力

INSERTクエリを実行した後、PostgreSQLは通常、挿入された行数を示すメッセージを返します。例えば:

INSERT 0 1

これは、1行が無事に挿入されたことを意味します。複数行を挿入した場合は以下のようになります:

INSERT 0 3

これは、3行が追加されたことを示しています。

高级INSERTテクニック

他のテーブルからのデータの挿入

時々、他のテーブルからデータをコピーしたい場合があります。PostgreSQLではこれが簡単にできます:

INSERT INTO new_students (name, age)
SELECT name, age FROM students WHERE age < 21;

このクエリは、21歳未満のすべての学生をstudentsテーブルからnew_studentsテーブルにコピーします。若い学生のための特別なクラスを作成するようなものです!

RETURNING句を使った挿入

PostgreSQLには、挿入されたデータを見ることができる便利な機能があります:

INSERT INTO students (name, age)
VALUES ('David Wilson', 24)
RETURNING *;

このクエリは、Davidをテーブルに挿入だけでなく、追加された行全体を表示します。デフォルト値や自動生成された値も含まれます。

一般的なINSERTメソッド

以下に、私たちが議論したINSERTメソッドのサマリーを示します:

メソッド 説明
基本的な挿入 単一行を追加 INSERT INTO students (name, age) VALUES ('John Doe', 20);
複数行挿入 一度に複数行を追加 INSERT INTO students (name, age) VALUES ('Jane', 22), ('Bob', 21);
デフォルト値を使った挿入 デフォルト値をデータベースに任せる INSERT INTO students (name) VALUES ('Alice');
セレクトから挿入 他のテーブルからデータをコピー INSERT INTO new_students SELECT * FROM students WHERE age < 21;
RETURNING句を使った挿入 挿入し、追加されたデータを表示 INSERT INTO students (name, age) VALUES ('David', 24) RETURNING *;

結論

そして、皆さん!私たちはPostgreSQLのINSERTクエリの世界を旅しました。単一の学生をクラスに追加することから、一度に複数の学生を入学させることまで、データベースを簡単に充実させる力を持っています。

忘れないでください、練習は完璧を生みます。自分でテーブルを作成し、さまざまなデータを追加してみてください。お気に入りの本や映画のテーブルを作成し、それにデータを追加してみてください。すぐにプロのようにデータを追加できるようになります!

ハッピーコーディング、そしてあなたのデータベースが常に充実し、エラーのないものであることを祈っています!

Credits: Image by storyset