Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Видалення з БД | SQLAlchemy
Бази Даних у Python

bookВидалення з БД

У цьому розділі розглянемо, як видаляти записи з бази даних за допомогою SQLAlchemy. Видалення записів є важливою частиною керування даними, особливо при усуненні застарілих або непотрібних елементів. SQLAlchemy надає простий, але потужний інструментарій для роботи з видаленнями як у одиночному, так і у масовому режимі.

Видалення одного запису за ID

Найпоширеніший спосіб видалення запису — це ідентифікація за певним критерієм, наприклад, за ID. Розглянемо, як видалити продукт за його 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()

Цей код отримує продукт з ID 1, перевіряє його існування, позначає для видалення через session.delete(product) і застосовує зміни за допомогою session.commit().

Видалення декількох записів

Іноді виникає потреба видалити декілька записів одночасно за певними умовами. Це корисно, наприклад, для видалення товарів, яких немає в наявності, або продуктів з ціною нижче певного порогу.

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

# Commit the changes
session.commit()

Запит відбирає товари, яких немає в наявності, видаляє їх за допомогою .delete(synchronize_session="fetch") і забезпечує синхронізацію сесії з базою даних.

Масові видалення

Для великих наборів даних масові видалення є ефективними. Цей метод напряму змінює записи у базі даних без завантаження їх у пам'ять, що економить час і ресурси.

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

# Commit the changes
session.commit()

У цьому прикладі відбираються продукти з ціною нижче $100 і видаляються методом .delete(), що забезпечує швидке та ефективне очищення великих таблиць.

Видалення всіх записів у таблиці

Якщо потрібно повністю очистити таблицю, SQLAlchemy дозволяє це зробити одним запитом.

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

# Commit the changes
session.commit()

Метод .delete(synchronize_session="fetch") видаляє всі записи з таблиці Product, що корисно для скидання даних або очищення тестового середовища.

Завдання

Swipe to start coding

Ваше завдання — доповнити код, написавши точні рядки, необхідні для видалення продукту з назвою "Headphones" з бази даних.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 8
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

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

bookВидалення з БД

Свайпніть щоб показати меню

У цьому розділі розглянемо, як видаляти записи з бази даних за допомогою SQLAlchemy. Видалення записів є важливою частиною керування даними, особливо при усуненні застарілих або непотрібних елементів. SQLAlchemy надає простий, але потужний інструментарій для роботи з видаленнями як у одиночному, так і у масовому режимі.

Видалення одного запису за ID

Найпоширеніший спосіб видалення запису — це ідентифікація за певним критерієм, наприклад, за ID. Розглянемо, як видалити продукт за його 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()

Цей код отримує продукт з ID 1, перевіряє його існування, позначає для видалення через session.delete(product) і застосовує зміни за допомогою session.commit().

Видалення декількох записів

Іноді виникає потреба видалити декілька записів одночасно за певними умовами. Це корисно, наприклад, для видалення товарів, яких немає в наявності, або продуктів з ціною нижче певного порогу.

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

# Commit the changes
session.commit()

Запит відбирає товари, яких немає в наявності, видаляє їх за допомогою .delete(synchronize_session="fetch") і забезпечує синхронізацію сесії з базою даних.

Масові видалення

Для великих наборів даних масові видалення є ефективними. Цей метод напряму змінює записи у базі даних без завантаження їх у пам'ять, що економить час і ресурси.

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

# Commit the changes
session.commit()

У цьому прикладі відбираються продукти з ціною нижче $100 і видаляються методом .delete(), що забезпечує швидке та ефективне очищення великих таблиць.

Видалення всіх записів у таблиці

Якщо потрібно повністю очистити таблицю, SQLAlchemy дозволяє це зробити одним запитом.

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

# Commit the changes
session.commit()

Метод .delete(synchronize_session="fetch") видаляє всі записи з таблиці Product, що корисно для скидання даних або очищення тестового середовища.

Завдання

Swipe to start coding

Ваше завдання — доповнити код, написавши точні рядки, необхідні для видалення продукту з назвою "Headphones" з бази даних.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 8
single

single

some-alt