sql >> Database >  >> RDS >> PostgreSQL

Array bijwerken in PostgreSQL

PostgreSQL maakt het gemakkelijk om met het gegevenstype array te werken. Soms moet u de array in PostgreSQL bijwerken met nieuwe gegevens. In dit artikel zullen we bekijken hoe u de array in PostgreSQL kunt wijzigen, de array kunt wijzigen in PostgreSQL en hoe u arrays kunt samenvoegen in PostgreSQL.


Hoe een array te updaten in PostgreSQL

Hier zijn de verschillende manieren om de array in PostgreSQL bij te werken. Laten we zeggen dat je de volgende matrixkolom hebt.

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

In het bovenstaande voorbeeld hebben we kolom verkoop gemaakt als een array van gehele getallen.

Laten we ook gegevens invoegen in onze matrixkolom.

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


Vervang alle elementen in een array

U kunt eenvoudig alle elementen van een array vervangen met de instructie 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}

In de bovenstaande UPDATE-instructie bieden we matrixwaarden tussen accolades tussen enkele aanhalingstekens. Postgres zal de hele array vervangen voor rijen die overeenkomen met de WHERE-voorwaarde.


Vervang enkele elementen in een array

U kunt ook specifieke array-elementen vervangen, zoals hieronder weergegeven.

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

In de bovenstaande verklaring vervangen we alleen het tweede array-element door de waarde sales [2] in te stellen.


Toevoegen en toevoegen aan array

U kunt ook waarden toevoegen en toevoegen aan uw array met behulp van array_append en array_prepend functies respectievelijk, zoals hieronder weergegeven.

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

Hier is de query die aan een array moet worden toegevoegd.

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

Let op, in array_append , moet u de waarde specificeren die moet worden toegevoegd als tweede argument in functie. In het geval van array_prepend , moet u het specificeren als het eerste element.


Verwijder array-element

Op dezelfde manier kunt u array_remove . gebruiken functie om element uit array te verwijderen.

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

In array_remove je moet het array-element specificeren dat je wilt verwijderen.


Matrices samenvoegen in PostgreSQL

U kunt twee arrays samenvoegen in PostgreSQL met behulp van array_cat functie

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

In array_cat functie, kunt u de matrixkolom doorgeven of het letterlijke object ARRAY gebruiken.

Een rapportagetool voor PostgreSQL nodig? Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!

  1. Hoe krijg ik de id na INSERT in MySQL-database met Python?

  2. Voeg 2 maanden toe aan het huidige tijdstempel

  3. Hoe kan ik de standaard Mysql-verbindingstime-out wijzigen wanneer ik verbinding maak via python?

  4. Fout:kan TypedQuery niet maken voor query met meer dan één return