Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Päivittäminen Tietokantaan | SQLAlchemy
Tietokannat Pythonissa

bookPäivittäminen Tietokantaan

Tässä luvussa opitaan, kuinka päivitetään tietueita tietokannassa käyttäen SQLAlchemyä. Tietueiden päivittäminen on olennaista, kun halutaan muokata olemassa olevia tietoja tauluissa, kuten esimerkiksi kuvauksia tai muita kenttiä. SQLAlchemy tarjoaa tehokkaat ja yksinkertaiset menetelmät päivitysten suorittamiseen.

Yksittäisen tietueen päivittäminen

Yleisin päivitystoimenpide on yksittäisen tietueen muokkaaminen. Tämä tehdään hakemalla olio, päivittämällä sen attribuutit ja tallentamalla muutokset.

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

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

Tuotteen hakemiseen ID:n perusteella käytetään kyselyä, jossa suodatetaan haluttu ID. Kun tuotteen description-kenttä on päivitetty, kutsumalla session.commit() tallennetaan muutokset tietokantaan.

Usean tietueen päivittäminen

Joskus on tarpeen päivittää useita tietueita kerralla. SQLAlchemy mahdollistaa tämän käyttämällä filter()-metodia yhdessä update()-metodin kanssa, jolloin tietueiden muokkaaminen on tehokasta.

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

Tuotteiden suodattamiseen, joiden hinta on yli $1000, käytetään kyselyä, jossa on ehto hinnasta. update-metodi tekee halutut muutokset kaikkiin ehtoihin sopiviin tietueisiin, ja synchronize_session="fetch"-argumentti varmistaa, että istunto pysyy synkronoituna päivityksen jälkeen.

Massapäivitykset

Laajamittaisiin muutoksiin massapäivitykset ovat tehokkaampia, sillä ne muokkaavat tietokannan tietueita suoraan lataamatta olioita muistiin. Tämä tekee niistä ihanteellisia, kun halutaan päivittää useita rivejä kerralla.

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

Tämä koodi päivittää tehokkaasti description-kentän kaikille tuotteille, joiden hinta on alle $500, yhdellä operaatiolla. Massapäivitykset ovat nopeampia ja säästävät muistia verrattuna yksittäisten tietueiden päivittämiseen.

Tehtävä

Swipe to start coding

  1. Hae kaikki tuotteet tietokannasta.
  2. Laske uusi hinta jokaiselle tuotteelle vähentämällä sitä 20 %.
  3. Tallenna päivitetyt hinnat tietokantaan.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 7
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain the difference between updating a single record and a bulk update in SQLAlchemy?

What does the `synchronize_session` parameter do in the `update()` method?

Are there any risks or caveats when performing bulk updates with SQLAlchemy?

close

Awesome!

Completion rate improved to 4.76

bookPäivittäminen Tietokantaan

Pyyhkäise näyttääksesi valikon

Tässä luvussa opitaan, kuinka päivitetään tietueita tietokannassa käyttäen SQLAlchemyä. Tietueiden päivittäminen on olennaista, kun halutaan muokata olemassa olevia tietoja tauluissa, kuten esimerkiksi kuvauksia tai muita kenttiä. SQLAlchemy tarjoaa tehokkaat ja yksinkertaiset menetelmät päivitysten suorittamiseen.

Yksittäisen tietueen päivittäminen

Yleisin päivitystoimenpide on yksittäisen tietueen muokkaaminen. Tämä tehdään hakemalla olio, päivittämällä sen attribuutit ja tallentamalla muutokset.

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

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

Tuotteen hakemiseen ID:n perusteella käytetään kyselyä, jossa suodatetaan haluttu ID. Kun tuotteen description-kenttä on päivitetty, kutsumalla session.commit() tallennetaan muutokset tietokantaan.

Usean tietueen päivittäminen

Joskus on tarpeen päivittää useita tietueita kerralla. SQLAlchemy mahdollistaa tämän käyttämällä filter()-metodia yhdessä update()-metodin kanssa, jolloin tietueiden muokkaaminen on tehokasta.

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

Tuotteiden suodattamiseen, joiden hinta on yli $1000, käytetään kyselyä, jossa on ehto hinnasta. update-metodi tekee halutut muutokset kaikkiin ehtoihin sopiviin tietueisiin, ja synchronize_session="fetch"-argumentti varmistaa, että istunto pysyy synkronoituna päivityksen jälkeen.

Massapäivitykset

Laajamittaisiin muutoksiin massapäivitykset ovat tehokkaampia, sillä ne muokkaavat tietokannan tietueita suoraan lataamatta olioita muistiin. Tämä tekee niistä ihanteellisia, kun halutaan päivittää useita rivejä kerralla.

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

Tämä koodi päivittää tehokkaasti description-kentän kaikille tuotteille, joiden hinta on alle $500, yhdellä operaatiolla. Massapäivitykset ovat nopeampia ja säästävät muistia verrattuna yksittäisten tietueiden päivittämiseen.

Tehtävä

Swipe to start coding

  1. Hae kaikki tuotteet tietokannasta.
  2. Laske uusi hinta jokaiselle tuotteelle vähentämällä sitä 20 %.
  3. Tallenna päivitetyt hinnat tietokantaan.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 7
single

single

some-alt