intermediate

SQL-like query builder

Стройте typed SQL expressions, сохраняя joins, filters, selected columns и generated SQL easy to inspect.

Drizzle держит запросы близко к SQL с TypeScript-выводом для столбцов и join. Динамические фильтры композируются, а SQL остаётся просматриваемым.

					await db
  .select({ id: orders.id, total: orders.total })
  .from(orders)
  .innerJoin(customers, eq(customers.id, orders.customerId))
  .where(and(eq(orders.status, 'open'), gte(orders.total, minTotal)));
				

На интервью: выбранные столбцы, join, динамические `where`, prepared statements, инспекция SQL и знание СУБД.

Типовые ошибки: SQL-like API не спасает от плохих планов; типы защищают форму, но не путь доступа.

Компромисс — прозрачность SQL и type safety против удобства «чистого» ORM.

Чеклист:

  • Держите SQL читаемым.
  • Смотрите планы важных запросов.
  • Типы для формы результата.
  • Параметризуйте пользовательский ввод.