# ORM vs native queries / ORM frente a consultas nativas

[Language-neutral comparison / Comparación general](https://www.ltavarez.me/noticias/guia-orm-vs-consultas-nativas)

The article compares data-access criteria across ecosystems. This folder is an optional Python/SQLite laboratory, not the scope of the comparison.

El artículo compara criterios de acceso a datos entre ecosistemas. Esta carpeta es un laboratorio opcional en Python/SQLite, no el alcance de la comparación.

## Run / Ejecutar

Python 3.9+, SQLAlchemy 2.0.46 and bundled SQLite. Create a virtual environment first / Crea primero un entorno virtual.

```sh
python -m pip install -r requirements.txt
python main.py
```

Expected output / Salida esperada:

```text
OK: ORM and SQL agree; parameters remain data
```

The program compares identical column projections and prints SQL plus an SQLite plan. It does not benchmark execution time or generalize performance to other engines. Add an index and inspect the plan; repeat the same operation in your own ecosystem with equivalent schema, projection, transactions and data.

El programa compara proyecciones idénticas e imprime SQL y un plan SQLite. No mide tiempos ni extrapola rendimiento. Añade un índice y revisa el plan; reproduce la misma operación en tu ecosistema con esquema, proyección, transacciones y datos equivalentes.

## References / Referencias

- https://docs.sqlalchemy.org/en/20/orm/session_basics.html
- https://learn.microsoft.com/en-us/ef/core/querying/sql-queries
- https://docs.hibernate.org/orm/current/userguide/html_single/
- https://www.prisma.io/docs/orm/fundamentals/advanced-queries
