PostgreSQL INSERT: テーブルへのデータの挿入

⚡ スマートサマリー

PostgreSQL INSERT文は、SQLを使用してテーブルに新しい行を追加します。 Lessでは、構文、単一行および複数行の挿入、RETURNING句、デフォルト値、およびpgAdminインターフェースを介したレコードの視覚的な追加について説明します。

  • 📥 基本的な構文: INSERT INTO table (cols) VALUES (vals) — 正規形式。
  • ???? 複数行: 複数の行を挿入するには、カンマで区切られた値のタプルを使用します。
  • 🔄 復帰: 同じ呼び出しで挿入された行を取得します。
  • 💡 デフォルト: 省略された列には、DEFAULTまたはNULLが設定されます。
  • 甘いもの<XNUMXxXNUMX><XNUMXxXNUMX><XNUMXxAXNUMX><XNUMXxAXNUMX>️️ pgAdmin GUI: SQL文を書かずに、視覚的に行を追加します。
  • 🤖 AI SQL: Copilotはパラメータ化されたINSERT文を生成します。

PostgreSQL INSERT

PostgreSQL INSERT ステートメント

In PostgreSQL、insert ステートメントは、テーブルに新しい行を挿入するのに役立ちます。値式で指定した行、ゼロ行、またはクエリの結果として得られる複数の行を挿入できます。

の構文 PostgreSQL INSERT INTO

INSERT INTO TABLE_NAME (column1, column2, ...columnN)
VALUES (value1, value2,...valueN);

上記の構文で、列 1 ~ N が、データを挿入するテーブル内の列の名前であることがわかります。 ターゲット列は、特定の順序でリストする必要があります。 クエリまたは値句によって指定される値は、列に対応する値のいずれかです。

クエリが実行されると、出力メッセージが表示されます。

Insert oid 1

この出力メッセージは、1 行のみが挿入された場合に表示されます。oid は、挿入された行に割り当てられた数値 OID です。

の例 PostgreSQL 表に挿入

2 つの列を持つ次の表「チュートリアル」を検討してください。

「id」整数 デフォルト値 1
「tutorial_name」テキスト DEFAULT 値 postgre
そして制約はありません

PostgreSQL 表に挿入

ここでは、次の手順を示します PostgreSQL テーブルに挿入:

ステップ1) 行を挿入する

INSERT INTO tutorials(id, tutorial_name) VALUES (1, 'postgre');

PostgreSQL 表に挿入

ご注意: 行を挿入するときに一重引用符で囲む必要があるのは、文字または日付値のみです。

ステップ2) ただし、すべての列にデータを挿入する場合は、列名を省略できます。 同じ挿入ステートメントは次のように書くこともできます。

INSERT INTO tutorials VALUES (1, 'postgre');

PostgreSQL 表に挿入

ステップ3) データ値は、テーブルに列が表示される順序でカンマで区切られてリストされます。

上記の構文には、テーブル内の列の順序を知る必要があるという問題があります。 この問題を解決するには、列を明示的にリストすることもできます。

たとえば、以下に示す 2 つのコマンドは、以下に示すように同じ効果があります。

INSERT INTO tutorials(id, tutorial_name) VALUES (1, 'postgre');
INSERT INTO tutorials(tutorial_name, id) VALUES ('postgre',1);

PostgreSQL 表に挿入

ステップ4) この例では、すべての列に値がない場合は、一部の列を省略できることがわかります。

その場合、指定されていれば、列にはデフォルト値が自動的に入力されます。

INSERT INTO tutorials(id) VALUES (5);

PostgreSQL 表に挿入

ステップ5) 個々の列または行全体のデフォルト値をリクエストすることもできます。

INSERT INTO tutorials(id, tutorial_name) VALUES (1, DEFAULT);
INSERT INTO tutorials DEFAULT VALUES;

PostgreSQL 表に挿入

ステップ6) 単一のコマンドで複数の行を作成できます。

INSERT INTO tutorials(id, tutorial_name) VALUES
(1, 'postgre'),
(2, 'oracle'),
(3, 'mysql'),
(4, 'mongo');

PostgreSQL 表に挿入

ステップ7) In PostgreSQL、行がないか、XNUMX 行、または複数行である可能性のあるクエリの結果を挿入することもできます。

INSERT INTO tutorials (id, tutorial_name)
SELECT id, tutorial_name FROM tutorials
WHERE tutorial_name = 'mysql';

PostgreSQL 表に挿入

PostgreSQL pgAdmin を使用してステートメントを挿入

ここでは、ステートメントを挿入する手順を示します。 Postgre SQL の pgAdmin

ステップ1) オブジェクトツリー内

  1. データを挿入したいテーブルを右クリックします
  2. スクリプトの選択
  3. スクリプトの挿入

PostgreSQL pgAdmin を使用してステートメントを挿入

ステップ2) 挿入パネル内

  1. クエリを編集する
  2. 照明ボタンをクリックします
  3. 出力を観察する

PostgreSQL pgAdmin を使用してステートメントを挿入

ステップ3) [ツール] > [クエリ ツール] に移動してクエリ エディターを開くこともできますが、デフォルトの挿入クエリは表示されません。

PostgreSQL pgAdmin を使用してステートメントを挿入

よくあるご質問

カンマ区切りのタプルを1つのINSERT文で指定します。例:INSERT INTO t (a,b) VALUES (1,2), (3,4)。複数の単一行INSERT文よりもはるかに高速です。

AIツールは、SQLインジェクションを防ぐためにパラメータ化されたINSERT文を生成し、RETURNING句を提案し、スプレッドシートデータを複数行のINSERT文に変換します。

はい。AIは現実的なシードデータを生成し、スキーマから列の型を推論し、書き込みます。 Python または、INSERT文をバッチ処理するためのシェルスクリプト。

RETURNING は、同じステートメントで挿入された行から列を取得します。すべての列を取得するには RETURNING * を使用し、特定の列のみを取得するには RETURNING * を使用します。

PostgreSQL 行数に制限はありませんが、非常に大きなステートメントはメモリ制限に達する可能性があります。大量のデータを読み込む場合は、COPYを使用してください。

必ず$1、$2プレースホルダーを使用したパラメータ化クエリを使用してください。INSERT SQL文字列にユーザー入力を連結しないでください。

はい。テーブルを開き、「データの表示/編集」を選択して、グリッドに新しい行を追加してください。pgAdminがINSERT文を自動的に生成します。

INSERT文はSQLを使って行ごとにデータを追加します。COPY文はファイルから大量のデータをはるかに高速にストリーミングします。初期ロードにはCOPY文を使用してください。