Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tietokannasta Poistaminen | SQLAlchemy
Tietokannat Pythonissa

bookTietokannasta Poistaminen

Tässä luvussa tarkastellaan, kuinka tietueita poistetaan tietokannasta käyttäen SQLAlchemyä. Tietueiden poistaminen on olennainen osa datan hallintaa, erityisesti kun poistetaan vanhentuneita tai tarpeettomia merkintöjä. SQLAlchemy tarjoaa yksinkertaiset mutta tehokkaat työkalut poistojen käsittelyyn sekä yksittäisissä että joukkotoiminnoissa.

Yksittäisen tietueen poistaminen ID:n perusteella

Yleisin tapa poistaa tietue on tunnistaa se tietyn kriteerin, kuten ID:n, avulla. Katsotaanpa, kuinka tuote poistetaan sen ID:n perusteella.

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

# Check if the product exists
if product:
    # Delete the product
    session.delete(product)
    session.commit()

Koodi hakee tuotteen, jonka ID on 1, varmistaa sen olemassaolon, merkitsee sen poistettavaksi session.delete(product)-komennolla ja toteuttaa muutoksen session.commit()-komennolla.

Useiden tietueiden poistaminen

Joskus on tarpeen poistaa useita tietueita kerralla tiettyjen ehtojen perusteella. Tämä on hyödyllistä esimerkiksi poistettaessa loppuunmyytyjä tuotteita tai tuotteita, joiden hinta on raja-arvon alapuolella.

session.query(Product).filter(Product.is_in_stock == False).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

Kysely suodattaa loppuunmyydyt tuotteet, poistaa ne käyttämällä .delete(synchronize_session="fetch")-metodia ja varmistaa, että istunto pysyy synkronoituna tietokannan kanssa.

Joukkopoistot

Suurissa tietomäärissä joukkopoistot ovat tehokkaita. Tämä menetelmä muokkaa tietokannan tietueita suoraan lataamatta niitä muistiin, mikä säästää aikaa ja resursseja.

session.query(Product).filter(Product.price < 100).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

Tässä esimerkissä suodatetaan tuotteet, joiden hinta on alle $100, ja poistetaan ne .delete()-metodilla, mikä tarjoaa nopean ja resurssitehokkaan ratkaisun suurille taulukoille.

Kaikkien tietueiden poistaminen taulusta

Joskus on tarpeen tyhjentää taulu kokonaan, ja SQLAlchemy tekee tämän helpoksi yhdellä kyselyllä.

session.query(Product).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

.delete(synchronize_session="fetch")-metodi poistaa kaikki tietueet Product-taulusta, mikä on hyödyllistä esimerkiksi datan nollaamisessa tai testausympäristöjen tyhjentämisessä.

Tehtävä

Swipe to start coding

Tehtävänäsi on täydentää koodi kirjoittamalla tarkat rivit, joilla poistetaan tietokannasta tuote nimeltä "Headphones".

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 8
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 what `synchronize_session="fetch"` does in these examples?

What happens if I try to delete a record that doesn't exist?

Are there any risks or best practices to consider when performing bulk deletions?

close

Awesome!

Completion rate improved to 4.76

bookTietokannasta Poistaminen

Pyyhkäise näyttääksesi valikon

Tässä luvussa tarkastellaan, kuinka tietueita poistetaan tietokannasta käyttäen SQLAlchemyä. Tietueiden poistaminen on olennainen osa datan hallintaa, erityisesti kun poistetaan vanhentuneita tai tarpeettomia merkintöjä. SQLAlchemy tarjoaa yksinkertaiset mutta tehokkaat työkalut poistojen käsittelyyn sekä yksittäisissä että joukkotoiminnoissa.

Yksittäisen tietueen poistaminen ID:n perusteella

Yleisin tapa poistaa tietue on tunnistaa se tietyn kriteerin, kuten ID:n, avulla. Katsotaanpa, kuinka tuote poistetaan sen ID:n perusteella.

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

# Check if the product exists
if product:
    # Delete the product
    session.delete(product)
    session.commit()

Koodi hakee tuotteen, jonka ID on 1, varmistaa sen olemassaolon, merkitsee sen poistettavaksi session.delete(product)-komennolla ja toteuttaa muutoksen session.commit()-komennolla.

Useiden tietueiden poistaminen

Joskus on tarpeen poistaa useita tietueita kerralla tiettyjen ehtojen perusteella. Tämä on hyödyllistä esimerkiksi poistettaessa loppuunmyytyjä tuotteita tai tuotteita, joiden hinta on raja-arvon alapuolella.

session.query(Product).filter(Product.is_in_stock == False).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

Kysely suodattaa loppuunmyydyt tuotteet, poistaa ne käyttämällä .delete(synchronize_session="fetch")-metodia ja varmistaa, että istunto pysyy synkronoituna tietokannan kanssa.

Joukkopoistot

Suurissa tietomäärissä joukkopoistot ovat tehokkaita. Tämä menetelmä muokkaa tietokannan tietueita suoraan lataamatta niitä muistiin, mikä säästää aikaa ja resursseja.

session.query(Product).filter(Product.price < 100).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

Tässä esimerkissä suodatetaan tuotteet, joiden hinta on alle $100, ja poistetaan ne .delete()-metodilla, mikä tarjoaa nopean ja resurssitehokkaan ratkaisun suurille taulukoille.

Kaikkien tietueiden poistaminen taulusta

Joskus on tarpeen tyhjentää taulu kokonaan, ja SQLAlchemy tekee tämän helpoksi yhdellä kyselyllä.

session.query(Product).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

.delete(synchronize_session="fetch")-metodi poistaa kaikki tietueet Product-taulusta, mikä on hyödyllistä esimerkiksi datan nollaamisessa tai testausympäristöjen tyhjentämisessä.

Tehtävä

Swipe to start coding

Tehtävänäsi on täydentää koodi kirjoittamalla tarkat rivit, joilla poistetaan tietokannasta tuote nimeltä "Headphones".

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 8
single

single

some-alt