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

bookОновлення в БД

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

Оновлення одного запису

Найпоширеніша операція оновлення — це зміна одного запису. Для цього потрібно отримати об'єкт, змінити його атрибути та зберегти зміни.

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

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

Щоб отримати продукт за його ID, використовується запит із фільтром для вказання потрібного ідентифікатора. Після зміни поля description у продукті, виклик session.commit() зберігає зміни у базі даних.

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

Іноді виникає потреба оновити декілька записів одночасно. SQLAlchemy дозволяє використовувати filter() разом із методом update() для ефективного редагування записів.

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

Щоб відфільтрувати продукти з ціною понад $1000, використовується запит із відповідною умовою. Метод update застосовує потрібні зміни до всіх відповідних записів, а аргумент synchronize_session="fetch" забезпечує синхронізацію сесії після оновлення.

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

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

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

Цей код ефективно оновлює опис для всіх продуктів із ціною нижче $500 за одну операцію. Масові оновлення працюють швидше та економлять пам'ять у порівнянні з індивідуальним оновленням записів.

Завдання

Swipe to start coding

  1. Отримати всі продукти з бази даних.
  2. Обчислити нову ціну для кожного продукту, зменшивши її на 20%.
  3. Зберегти оновлені ціни у базі даних.

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

close

Awesome!

Completion rate improved to 4.76

bookОновлення в БД

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

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

Оновлення одного запису

Найпоширеніша операція оновлення — це зміна одного запису. Для цього потрібно отримати об'єкт, змінити його атрибути та зберегти зміни.

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

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

Щоб отримати продукт за його ID, використовується запит із фільтром для вказання потрібного ідентифікатора. Після зміни поля description у продукті, виклик session.commit() зберігає зміни у базі даних.

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

Іноді виникає потреба оновити декілька записів одночасно. SQLAlchemy дозволяє використовувати filter() разом із методом update() для ефективного редагування записів.

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

Щоб відфільтрувати продукти з ціною понад $1000, використовується запит із відповідною умовою. Метод update застосовує потрібні зміни до всіх відповідних записів, а аргумент synchronize_session="fetch" забезпечує синхронізацію сесії після оновлення.

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

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

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

Цей код ефективно оновлює опис для всіх продуктів із ціною нижче $500 за одну операцію. Масові оновлення працюють швидше та економлять пам'ять у порівнянні з індивідуальним оновленням записів.

Завдання

Swipe to start coding

  1. Отримати всі продукти з бази даних.
  2. Обчислити нову ціну для кожного продукту, зменшивши її на 20%.
  3. Зберегти оновлені ціни у базі даних.

Рішення

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

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

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

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

single

some-alt