Drizzle ORM provides type-safe query builders for all MySQL operations. Each query builder provides a fluent API with method chaining.
Select Query Builder
MySqlSelectBuilder
Builds SELECT queries with support for joins, filters, ordering, and aggregations.
from()
Specifies the table or subquery to select from.
source MySqlTable | Subquery | MySqlViewBase | SQL
required
The table, view, subquery, or SQL expression to select from.
Index hints for query optimization (only for tables).
Examples
where()
Adds WHERE clause filters to the query.
Examples
orderBy()
Orders the results by one or more columns.
Examples
limit()
Limits the number of rows returned.
Examples
offset()
Skips a number of rows before returning results.
Examples
groupBy()
Groups results by one or more columns.
Examples
having()
Filters grouped results (use after groupBy).
Examples
Joins
innerJoin()
Performs an INNER JOIN.
Examples
leftJoin()
Performs a LEFT JOIN (includes all rows from left table).
Examples
rightJoin()
Performs a RIGHT JOIN (includes all rows from right table).
fullJoin()
Performs a FULL OUTER JOIN.
Locking
for()
Adds locking clause (FOR UPDATE or FOR SHARE).
Examples
Set Operations
union()
Combines results from multiple queries (removes duplicates).
Examples
unionAll()
Combines results from multiple queries (keeps duplicates).
intersect()
Returns only rows that appear in all queries.
except()
Returns rows from first query that don’t appear in subsequent queries.
Insert Query Builder
MySqlInsertBuilder
Builds INSERT queries with support for bulk inserts and conflict handling.
values()
Specifies the values to insert.
Examples
select()
Inserts data from a SELECT query.
Examples
ignore()
Ignores duplicate key errors.
Examples
onDuplicateKeyUpdate()
Updates rows on duplicate key.
Examples
Update Query Builder
MySqlUpdateBuilder
Builds UPDATE queries with filtering and ordering.
set()
Specifies the values to update.
Examples
where()
Filters which rows to update.
Always use where() with updates unless you intend to update all rows.
Examples
orderBy()
Orders the rows before updating (used with LIMIT).
limit()
Limits the number of rows to update.
Examples
Delete Query Builder
MySqlDeleteBase
Builds DELETE queries with filtering.
where()
Filters which rows to delete.
Always use where() with deletes unless you intend to delete all rows.
Examples
orderBy()
Orders rows before deletion (used with LIMIT).
limit()
Limits the number of rows to delete.
Examples
Query Execution
All query builders support these execution methods:
execute()
Executes the query and returns the result.
prepare()
Prepares a query for reuse with different parameters.
then()
Query builders are thenable, so you can await them directly.
Subqueries
as()
Converts a query into a subquery with an alias.
Type Safety
All query builders maintain full type safety: