Skip to main content

Crate sz_orm_query_builder

Crate sz_orm_query_builder 

Source
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 Model trait, 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

Featuresz-orm-core::QueryBuilder<M>sz-orm-query-builder::Query
Binds ModelYes (<M: Model>)No
Type safetyCompile-time table/column validationRuntime strings
Applicable scenariosFull ORM workflowPure SQL construction, dynamic queries
DependenciesAll of sz-orm-coreOnly dialect module
Independent publishNoYes

Structs§

BuiltQuery
Parameterized query construction result
DeleteQuery
DELETE query builder
InsertQuery
INSERT query builder
QueryDeprecated
Query builder entry point
SelectQuery
SELECT query builder
SetQuery
Set operation query, supports chaining multiple SELECTs joined by UNION/INTERSECT/EXCEPT.
UpdateQuery
UPDATE query builder

Enums§

SetOperator
SQL set operator type.
UpsertStrategy
Upsert (insert or update) strategy