PostgreSQL - INSERTクエリ:ビギナーズガイド
こんにちは、未来のデータベースの魔法使いさんたち!今日は、PostgreSQLの素晴らしい世界に飛び込み、最も基本的な操作の一つであるINSERTクエリについて学びます。プログラミングが初めてであっても心配しないでください。私はこれまでに多くの生徒を指導してきましたので、ステップバイステップで説明します。では、コーヒー(またはあなたが好きなお茶)を一杯取り、始めましょう!
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
という名前のテーブルがあり、id
、name
、age
というカラムがあるとします。新しい学生を追加する方法は以下の通りです:
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