Expand description
§SZ-ORM QueryBuilder — Standalone SQL Builder (sea-query style)
A pure SQL builder that does not bind to Model, can be compiled independently and published to crates.io.
Design inspired by sea-query:
- Decoupled from ORM: does not depend on
Modeltrait, pure SQL construction - Multi-dialect support: adapts MySQL/PostgreSQL/SQLite/Oracle via
DbType - Chainable API: all methods return
Self - Zero runtime overhead: construction process requires zero database connections
§Quick Start
use sz_orm_core::DbType;
use sz_orm_query_builder::{Query, SelectQuery};
// SELECT
let sql = Query::select()
.column("id")
.column("name")
.from("users")
.where_clause("age > 18")
.order_by("id", true)
.limit(10)
.build(DbType::MySQL);
assert!(sql.contains("SELECT"));
assert!(sql.contains("FROM `users`"));
// INSERT
let sql = Query::insert()
.into_table("users")
.value("name", "'Alice'")
.value("age", "30")
.build();
assert!(sql.contains("INSERT INTO `users`"));
// UPDATE
let sql = Query::update()
.table("users")
.set("name", "'Bob'")
.where_clause("id = 1")
.build();
assert!(sql.contains("UPDATE `users`"));
// DELETE
let sql = Query::delete()
.from_table("users")
.where_clause("id = 1")
.build();
assert!(sql.contains("DELETE FROM"));§Differences from sz-orm-core::QueryBuilder
| Feature | sz-orm-core::QueryBuilder<M> | sz-orm-query-builder::Query |
|---|---|---|
| Binds Model | Yes (<M: Model>) | No |
| Type safety | Compile-time table/column validation | Runtime strings |
| Applicable scenarios | Full ORM workflow | Pure SQL construction, dynamic queries |
| Dependencies | All of sz-orm-core | Only dialect module |
| Independent publish | No | Yes |
Structs§
- Built
Query - Parameterized query construction result
- Delete
Query - DELETE query builder
- Insert
Query - INSERT query builder
- Query
Deprecated - Query builder entry point
- Select
Query - SELECT query builder
- SetQuery
- Set operation query, supports chaining multiple SELECTs joined by UNION/INTERSECT/EXCEPT.
- Update
Query - UPDATE query builder
Enums§
- SetOperator
- SQL set operator type.
- Upsert
Strategy - Upsert (insert or update) strategy