Встречается на собеседованиях • сегодня

В чем разница между ORM и написания SQL-запросов вручную

ORM (Object-Relational Mapping) позволяет работать с базой данных через объекты Python, абстрагируясь от SQL. Вручную написанные SQL-запросы дают больше контроля, но требуют больше кода.

Основные различия:

  • ORM (например, SQLAlchemy, Django ORM):
    • Автоматизирует CRUD-операции
    • Позволяет избежать SQL-инъекций
    • Менее эффективен для сложных запросов
    python
    # Пример с Django ORM
    User.objects.filter(age__gt=18).order_by('name')
  • Ручные SQL-запросы:
    • Полный контроль над запросами
    • Выше производительность для сложных операций
    • Риск SQL-инъекций без правильного экранирования
    python
    # Пример с psycopg2
    cursor.execute("SELECT * FROM users WHERE age > %s ORDER BY name", (18,))

Выбор зависит от задачи: ORM удобен для типовых операций, ручной SQL — для оптимизации и сложной логики.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы