sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLで配列を更新する方法

    PostgreSQLを使用すると、配列データ型を簡単に操作できます。 PostgreSQLの配列を新しいデータで更新する必要がある場合があります。この記事では、PostgreSQLで配列を変更する方法、PostgreSQLで配列を変更する方法、PostgreSQLで配列をマージする方法について説明します。


    PostgreSQLで配列を更新する方法

    PostgreSQLで配列を更新するさまざまな方法を次に示します。次の配列列があるとします。

    # create table employees ( 
         id int, 
         name varchar, 
         sales integer[] 
    );

    上記の例では、列 salesを作成しました。 整数の配列として。

    配列列にもデータを挿入しましょう。

    # insert into employees (id, name, sales)
              values (1, ' John Doe', ARRAY [9,7,5,4,3,2]),
                     (2, ' Jim Day', ARRAY [8,6,3,2,9,2]);
    
    # select * from employees;
     id |   name    |     sales
    ----+-----------+---------------
      1 |  John Doe | {9,7,5,4,3,2}
      2 |  Jim Day  | {8,6,3,2,9,2}
    


    配列内のすべての要素を置き換えます

    UPDATE…SETステートメントを使用して、配列のすべての要素を簡単に置き換えることができます。

    # update employees 
      set sales = '{10,12,31,10,11}' 
      where id=1;
    
    # select * from employees;
     id |   name    |      sales
    ----+-----------+------------------
      2 |  Jim Day  | {8,6,3,2,9,2}
      1 |  John Doe | {10,12,31,10,11}

    上記のUPDATEステートメントでは、一重引用符で囲まれた中括弧内に配列値を指定しています。 Postgresは、WHERE条件に一致する行の配列全体を置き換えます。


    配列内のいくつかの要素を置き換えます

    以下に示すように、特定の配列要素を置き換えることもできます。

    =# update employees
                 set sales[2] = 41
                 where id=1;
    
    # select * from employees;
     id |   name    |      sales
    ----+-----------+------------------
      2 |  Jim Day  | {8,6,3,2,9,2}
      1 |  John Doe | {10,41,31,10,11}
    

    上記のステートメントでは、sales[2]値を設定して2番目の配列要素のみを置き換えます。


    配列に追加および追加

    また、 array_append を使用して、配列に値を追加および追加します。 およびarray_prepend 以下に示すように、それぞれ機能します。

    # update employees
                 set sales = array_append(sales, 1)
                 where id=1;
    
    # select * from employees;
     id |   name    |       sales
    ----+-----------+--------------------
      2 |  Jim Day  | {8,6,3,2,9,2}
      1 |  John Doe | {10,41,31,10,11,1}
    

    配列の先頭に追加するクエリは次のとおりです。

    # update employees
               set sales = array_prepend(9,sales)
               where id=1;
    
    # select * from employees;
     id |   name    |        sales
    ----+-----------+----------------------
      2 |  Jim Day  | {8,6,3,2,9,2}
      1 |  John Doe | {9,10,41,31,10,11,1}
    

    array_appendに注意してください 、関数の2番目の引数として追加する値を指定する必要があります。 array_prependの場合 、最初の要素として指定する必要があります。


    配列要素を削除

    同様に、 array_removeを使用できます 配列から要素を削除する関数。

    # select array_remove(sales, 9) as reduced_array from employees where id=1;
       reduced_array
    --------------------
     {10,41,31,10,11,1}

    array_remove 削除する配列要素を指定する必要があります。


    PostgreSQLで配列をマージ

    array_cat を使用して、PostgreSQLで2つの配列をマージできます 関数

    # select array_cat(sales, '{9,3}') as merged_array 
               from employees where id=1;
           merged_array
    --------------------------
     {9,10,41,31,10,11,1,9,3}
    
    # select array_cat(array[1,2],'{9,3}') as merged_array 
          from employees where id=1;
     merged_array
    --------------
     {1,2,9,3}

    array_cat 関数の場合、配列列を渡すか、ARRAYリテラルオブジェクトを使用できます。

    PostgreSQL用のレポートツールが必要ですか? Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。

    1. PostgreSQLのセキュリティ監査の自動化

    2. ビジネスに適したデータベースを選択する方法

    3. MySQLテーブル、インデックス、およびデータの複製

    4. T-SQLを使用してSQLServerのテーブルの列権限を取得します:sp_column_privileges