Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Ta Bort Från DB | SQLAlchemy
Databaser i Python

bookTa Bort Från DB

I detta kapitel utforskar vi hur man tar bort poster från en databas med SQLAlchemy. Att ta bort poster är avgörande vid hantering av data, särskilt när man behöver ta bort föråldrade eller onödiga poster. SQLAlchemy erbjuder enkla men kraftfulla verktyg för att hantera borttagningar både i enskilda och massoperationer.

Ta bort en enskild post via ID

Det vanligaste sättet att ta bort en post är att identifiera den genom ett specifikt kriterium, såsom dess ID. Här visas hur man tar bort en produkt med hjälp av dess ID.

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

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

Koden hämtar en produkt med ID 1, verifierar dess existens, markerar den för borttagning med session.delete(product) och genomför ändringen med session.commit().

Ta bort flera poster

Ibland behöver man ta bort flera poster samtidigt baserat på specifika villkor. Detta är användbart för uppgifter som att ta bort slut i lager-artiklar eller produkter under en viss priströskel.

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

# Commit the changes
session.commit()

Frågan filtrerar ut produkter som är slut i lager, tar bort dem med .delete(synchronize_session="fetch") och säkerställer att sessionen hålls synkroniserad med databasen.

Massborttagningar

För stora datamängder är massborttagningar effektiva. Denna metod modifierar databaspster direkt utan att ladda dem i minnet, vilket sparar tid och resurser.

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

# Commit the changes
session.commit()

Detta exempel filtrerar produkter med ett pris under $100 och tar bort dem med .delete()-metoden, vilket ger en snabb och resurseffektiv lösning för stora tabeller.

Ta bort alla poster i en tabell

Om du behöver rensa en tabell helt gör SQLAlchemy detta enkelt med en enda fråga.

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

# Commit the changes
session.commit()

Metoden .delete(synchronize_session="fetch") tar bort alla poster från tabellen Product, vilket är användbart för att återställa data eller rensa testmiljöer.

Uppgift

Swipe to start coding

Din uppgift är att komplettera koden genom att skriva de exakta raderna som behövs för att ta bort produkten med namnet "Headphones" från databasen.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 8
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 4.76

bookTa Bort Från DB

Svep för att visa menyn

I detta kapitel utforskar vi hur man tar bort poster från en databas med SQLAlchemy. Att ta bort poster är avgörande vid hantering av data, särskilt när man behöver ta bort föråldrade eller onödiga poster. SQLAlchemy erbjuder enkla men kraftfulla verktyg för att hantera borttagningar både i enskilda och massoperationer.

Ta bort en enskild post via ID

Det vanligaste sättet att ta bort en post är att identifiera den genom ett specifikt kriterium, såsom dess ID. Här visas hur man tar bort en produkt med hjälp av dess ID.

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

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

Koden hämtar en produkt med ID 1, verifierar dess existens, markerar den för borttagning med session.delete(product) och genomför ändringen med session.commit().

Ta bort flera poster

Ibland behöver man ta bort flera poster samtidigt baserat på specifika villkor. Detta är användbart för uppgifter som att ta bort slut i lager-artiklar eller produkter under en viss priströskel.

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

# Commit the changes
session.commit()

Frågan filtrerar ut produkter som är slut i lager, tar bort dem med .delete(synchronize_session="fetch") och säkerställer att sessionen hålls synkroniserad med databasen.

Massborttagningar

För stora datamängder är massborttagningar effektiva. Denna metod modifierar databaspster direkt utan att ladda dem i minnet, vilket sparar tid och resurser.

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

# Commit the changes
session.commit()

Detta exempel filtrerar produkter med ett pris under $100 och tar bort dem med .delete()-metoden, vilket ger en snabb och resurseffektiv lösning för stora tabeller.

Ta bort alla poster i en tabell

Om du behöver rensa en tabell helt gör SQLAlchemy detta enkelt med en enda fråga.

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

# Commit the changes
session.commit()

Metoden .delete(synchronize_session="fetch") tar bort alla poster från tabellen Product, vilket är användbart för att återställa data eller rensa testmiljöer.

Uppgift

Swipe to start coding

Din uppgift är att komplettera koden genom att skriva de exakta raderna som behövs för att ta bort produkten med namnet "Headphones" från databasen.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 8
single

single

some-alt