PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да актуализирате масив в PostgreSQL

PostgreSQL улеснява работата с тип данни от масив. Понякога може да се наложи да актуализирате масива в PostgreSQL с нови данни. В тази статия ще разгледаме как да променим масива в PostgreSQL, да променим масива в PostgreSQL и да обединим масиви в PostgreSQL.


Как да актуализирате масив в PostgreSQL

Ето различните начини за актуализиране на масив в PostgreSQL. Да кажем, че имате следната колона на масива.

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

В горния пример създадохме колона продажби като масив от цели числа.

Нека също така вмъкнем данни в колоната на нашия масив.

# 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].


Добавяне и добавяне към масив

Вие също така добавяте и добавяте стойности към своя масив с помощта на array_append и предварителен_масив функции съответно, както е показано по-долу.

# 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 , трябва да посочите стойността, която да бъде добавена като втори аргумент във функцията. В случай на 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

Можете да обедините два масива в PostgreSQL с помощта на array_cat функция

# 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Групиране по интервали от данни

  2. ST_HexagonGrid geom вектор за намиране на всички точки

  3. За предимствата на сортираните пътища

  4. Грешка в Postgres SSL SYSCALL:EOF е открит с python и psycopg

  5. Не мога да инсталирам pg gem на Windows