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 tietokantaan käyttäen SQLAlchemyä. Tietueiden päivittäminen on olennaista, kun halutaan muokata olemassa olevia tietoja tauluissa, kuten kuvauksia tai muita kenttiä. SQLAlchemy tarjoaa tehokkaat ja suoraviivaiset menetelmät päivitysten tekemiseen.

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 on päivitetty, kutsumalla session.commit() tallennetaan muutokset tietokantaan.

Usean tietueen päivittäminen

Joskus on tarpeen päivittää useita tietueita kerralla. SQLAlchemy mahdollistaa filter()-funktion käytön yhdessä update()-metodin kanssa tietueiden tehokkaaseen muokkaamiseen.

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

Suodattaaksesi tuotteet, 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 päivitetään 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 kuvauksen 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` argument do in the `update()` method?

Are there any risks or things to watch out for when performing bulk updates?

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 tietokantaan käyttäen SQLAlchemyä. Tietueiden päivittäminen on olennaista, kun halutaan muokata olemassa olevia tietoja tauluissa, kuten kuvauksia tai muita kenttiä. SQLAlchemy tarjoaa tehokkaat ja suoraviivaiset menetelmät päivitysten tekemiseen.

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 on päivitetty, kutsumalla session.commit() tallennetaan muutokset tietokantaan.

Usean tietueen päivittäminen

Joskus on tarpeen päivittää useita tietueita kerralla. SQLAlchemy mahdollistaa filter()-funktion käytön yhdessä update()-metodin kanssa tietueiden tehokkaaseen muokkaamiseen.

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

Suodattaaksesi tuotteet, 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 päivitetään 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 kuvauksen 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