SQLのvaluesはinsertする値を指定 PostgreSQLでは単体使用も可能
  • facebookページ
  • twitterページ
  • 2020.06.27

    SQLのvaluesはinsertする値を指定 PostgreSQLでは単体使用も可能

    SQLのvaluesについてまとめています。

    SQLのvaluesは、insert文で挿入する値を指定する

    例えば、以下のSQLは、employees(社員テーブル)に、新しくデータを一行挿入するSQLです。

    この記述法は、カラムの並びをそのまま記述できるため、以下の様なCSVファイルをSQLに加工してデータベースにinsertする場合に便利です。

    上記のCSVファイルをemployeesテーブルへのinsert文に加工するとこうなります。

    【関連記事】
    MySQL Insert サンプルコード集 一文で一括挿入する方法とは? 

    PostgreSQLでは、valuesを単体のSQLとして使える

    PostgreSQLでは、valuesをselect文のように使用することができます。

    参考)PostgreSQL公式ドキュメント VALUES

    列名は自動的に、column1, column2, column3…となります。なお、複数行、複数列を指定することも可能です。下記の例では、列が2つ、行が3つの表を返します。小さな表をSQL内で一時的に生成する場合に便利ですね。

    上記のSQLは、UNIONを使って記述すると、以下のようになります。

    なお、MySQLではvaluesを単体で使おうとするとSyntax Errorとなります。

    PostgreSQLの公式ドキュメントによると、valuesはSQL標準に従うとありますが、valuesの単体使用についてはデータベース管理ソフト毎に扱いが異なるようです。

    【関連記事】
    SQLとはどういうもの? 独自拡張と標準SQLの大きな違いって、何?

    PostgreSQLでは、valuesをサブクエリのように使ってSQLを記述することも可能です。

    ただし、FROM内で使用する場合は、as句を使って別名をつけることが必須になります。

    まとめ

    ポテパンダの一言メモ
    • valuesは、insert文で挿入する値を記述するために使う
    • PostgreSQLでは、valuesを単体でselect文のように使うことが可能
    • values自体は標準SQLだが、単体使用できるかどうかはデータベース管理ソフトごとに異なる


    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE