PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara Memperbarui Array di PostgreSQL

PostgreSQL memudahkan bekerja dengan tipe data array. Terkadang Anda mungkin perlu memperbarui array di PostgreSQL dengan data baru. Pada artikel ini, kita akan melihat cara mengubah array di PostgreSQL, memodifikasi array di PostgreSQL, dan menggabungkan array di PostgreSQL.


Cara Memperbarui Array di PostgreSQL

Berikut adalah berbagai cara untuk memperbarui array di PostgreSQL. Katakanlah Anda memiliki kolom array berikut.

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

Pada contoh di atas, kami telah membuat kolom penjualan sebagai array bilangan bulat.

Mari kita juga menyisipkan data di kolom array kita.

# 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}


Ganti semua elemen dalam Array

Anda dapat dengan mudah mengganti semua elemen array menggunakan pernyataan 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}

Dalam pernyataan UPDATE di atas, kami memberikan nilai array di dalam kurung kurawal yang diapit tanda kutip tunggal. Postgres akan menggantikan seluruh larik untuk baris yang cocok dengan kondisi WHERE.


Ganti beberapa elemen dalam Array

Anda juga dapat mengganti elemen array tertentu seperti yang ditunjukkan di bawah ini.

=# 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}

Dalam pernyataan di atas, kami hanya mengganti elemen larik kedua dengan menetapkan nilai penjualan[2].


Tambahkan dan Tambahkan ke Array

Anda juga menambahkan dan menambahkan nilai ke array Anda menggunakan array_append dan array_prepend fungsi masing-masing, seperti yang ditunjukkan di bawah ini.

# 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}

Berikut adalah kueri untuk menambahkan ke array.

# 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}

Harap dicatat, di array_append , Anda perlu menentukan nilai yang akan ditambahkan sebagai argumen kedua dalam fungsi. Dalam kasus array_prepend , Anda perlu menentukannya sebagai elemen pertama.


Hapus elemen larik

Demikian pula, Anda dapat menggunakan array_remove berfungsi untuk menghapus elemen dari array.

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

Di array_remove Anda perlu menentukan elemen larik yang ingin Anda hapus.


Gabungkan Array di PostgreSQL

Anda dapat menggabungkan dua array di PostgreSQL menggunakan array_cat fungsi

# 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}

Di array_cat fungsi, Anda dapat melewati kolom array atau menggunakan objek literal ARRAY.

Butuh alat pelaporan untuk PostgreSQL? Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari ini!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat kueri case-insensitive di Postgresql?

  2. Cara Membuat Histogram di PostgreSQL

  3. Batasan unik Postgres vs indeks

  4. Fitur Tersembunyi PostgreSQL

  5. Cara membersihkan SQL mentah di Rails 4