Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Oppdatering til DB | SQLAlchemy
Databaser i Python

bookOppdatering til DB

I dette kapittelet skal vi lære hvordan man oppdaterer poster i en database ved hjelp av SQLAlchemy. Å oppdatere poster er viktig når du skal endre eksisterende data i tabellene dine, for eksempel ved å endre beskrivelser eller andre felt. SQLAlchemy tilbyr effektive og enkle metoder for å utføre oppdateringer.

Oppdatering av én enkelt post

Den vanligste oppdateringsoperasjonen er å endre en enkelt post. For å gjøre dette må du hente objektet, oppdatere dets attributter, og deretter lagre endringene.

product = session.query(Product).filter(Product.id == 1).first()

if product:
    product.description = "Updated description for high-end gaming laptop"
    session.commit()

For å hente et produkt etter ID, bruker du en spørring med et filter for å angi ønsket ID. Etter å ha oppdatert produktets description, vil et kall til session.commit() lagre endringene i databasen.

Oppdatering av flere poster

Noen ganger må du oppdatere flere poster samtidig. SQLAlchemy lar deg bruke filter() sammen med update()-metoden for å endre poster effektivt.

session.query(Product).filter(Product.price > 1000).update(
    {Product.description: "Updated description for premium products"}, 
    synchronize_session="fetch"
)
session.commit()

For å filtrere produkter med pris over $1000, bruker du en spørring med en betingelse på pris. update-metoden utfører de ønskede endringene på alle samsvarende poster, mens argumentet synchronize_session="fetch" sørger for at økten forblir synkronisert etter oppdateringen.

Masseoppdateringer

For endringer i stor skala er masseoppdateringer mer effektive, da de endrer databaseposter direkte uten å laste objektene inn i minnet. Dette gjør dem ideelle for å oppdatere mange rader samtidig.

session.query(Product).filter(Product.price < 500).update(
    {Product.description: "Generic description for affordable products"}, 
    synchronize_session="fetch"
)
session.commit()

Denne koden oppdaterer effektivt description for alle produkter med pris under $500 i én operasjon. Masseoppdateringer er raskere og sparer minne sammenlignet med å oppdatere poster individuelt.

Oppgave

Swipe to start coding

  1. Hent alle produkter fra databasen.
  2. Beregn den nye prisen for hvert produkt ved å redusere den med 20 %.
  3. Lagre de oppdaterte prisene i databasen.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 7
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

close

Awesome!

Completion rate improved to 4.76

bookOppdatering til DB

Sveip for å vise menyen

I dette kapittelet skal vi lære hvordan man oppdaterer poster i en database ved hjelp av SQLAlchemy. Å oppdatere poster er viktig når du skal endre eksisterende data i tabellene dine, for eksempel ved å endre beskrivelser eller andre felt. SQLAlchemy tilbyr effektive og enkle metoder for å utføre oppdateringer.

Oppdatering av én enkelt post

Den vanligste oppdateringsoperasjonen er å endre en enkelt post. For å gjøre dette må du hente objektet, oppdatere dets attributter, og deretter lagre endringene.

product = session.query(Product).filter(Product.id == 1).first()

if product:
    product.description = "Updated description for high-end gaming laptop"
    session.commit()

For å hente et produkt etter ID, bruker du en spørring med et filter for å angi ønsket ID. Etter å ha oppdatert produktets description, vil et kall til session.commit() lagre endringene i databasen.

Oppdatering av flere poster

Noen ganger må du oppdatere flere poster samtidig. SQLAlchemy lar deg bruke filter() sammen med update()-metoden for å endre poster effektivt.

session.query(Product).filter(Product.price > 1000).update(
    {Product.description: "Updated description for premium products"}, 
    synchronize_session="fetch"
)
session.commit()

For å filtrere produkter med pris over $1000, bruker du en spørring med en betingelse på pris. update-metoden utfører de ønskede endringene på alle samsvarende poster, mens argumentet synchronize_session="fetch" sørger for at økten forblir synkronisert etter oppdateringen.

Masseoppdateringer

For endringer i stor skala er masseoppdateringer mer effektive, da de endrer databaseposter direkte uten å laste objektene inn i minnet. Dette gjør dem ideelle for å oppdatere mange rader samtidig.

session.query(Product).filter(Product.price < 500).update(
    {Product.description: "Generic description for affordable products"}, 
    synchronize_session="fetch"
)
session.commit()

Denne koden oppdaterer effektivt description for alle produkter med pris under $500 i én operasjon. Masseoppdateringer er raskere og sparer minne sammenlignet med å oppdatere poster individuelt.

Oppgave

Swipe to start coding

  1. Hent alle produkter fra databasen.
  2. Beregn den nye prisen for hvert produkt ved å redusere den med 20 %.
  3. Lagre de oppdaterte prisene i databasen.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 7
single

single

some-alt