[−][src]Crate sql_builder
Simple SQL code generator.
Usage
To use sql-builder
, first add this to your Cargo.toml
:
[dependencies]
sql-builder = "0.11"
Examples:
SELECT
use sql_builder::SqlBuilder; let sql = SqlBuilder::select_from("company") .field("id") .field("name") .and_where_gt("salary", 25_000) .sql()?; assert_eq!("SELECT id, name FROM company WHERE salary > 25000;", &sql);
use sql_builder::prelude::*; let sql = SqlBuilder::select_from("company") .fields(&["id", "name"]) .and_where("salary BETWEEN ? AND ?".binds(&[&10_000, &25_000])) .and_where("staff BETWEEN ? AND ?".bind(&100).bind(&200)) .sql()?; assert_eq!("SELECT id, name FROM company WHERE (salary BETWEEN 10000 AND 25000) AND (staff BETWEEN 100 AND 200);", &sql);
INSERT
use sql_builder::{SqlBuilder, quote}; let sql = SqlBuilder::insert_into("company") .field("name") .field("salary") .field("staff") .values(&["e("D&G"), &10_000.to_string(), &100.to_string()]) .values(&["e("G&D"), &25_000.to_string(), &200.to_string()]) .sql()?; assert_eq!("INSERT INTO company (name, salary, staff) VALUES ('D&G', 10000, 100), ('G&D', 25000, 200);", &sql);
use sql_builder::prelude::*; let sql = SqlBuilder::insert_into("company") .field("name") .field("salary") .field("staff") .values(&["$1, ?, ?"]) .values(&["$2, ?, ?"]) .sql()? .bind_nums(&[&"D&G", &"G&D"]) .binds(&[&10_000, &100]); assert_eq!("INSERT INTO company (name, salary, staff) VALUES ('D&G', 10000, 100), ('G&D', 10000, 100);", &sql);
UPDATE
use sql_builder::SqlBuilder; let sql = SqlBuilder::update_table("company") .set("salary", "salary + 100") .and_where_lt("salary", 1_000) .sql()?; assert_eq!("UPDATE company SET salary = salary + 100 WHERE salary < 1000;", &sql);
use sql_builder::prelude::*; let sql = SqlBuilder::update_table("company") .set("salary", "salary + $1") .set("comment", "e("up $1$$")) .and_where("salary < ?".bind(&1_000)) .sql()? .bind_nums(&[&100]); assert_eq!("UPDATE company SET salary = salary + 100, comment = 'up 100$' WHERE salary < 1000;", &sql);
DELETE
use sql_builder::SqlBuilder; let sql = SqlBuilder::delete_from("company") .or_where_lt("salary", 1_000) .or_where_gt("salary", 25_000) .sql()?; assert_eq!("DELETE FROM company WHERE salary < 1000 OR salary > 25000;", &sql);
use sql_builder::prelude::*; let sql = SqlBuilder::delete_from("company") .or_where("salary < ?") .or_where("salary > ?") .sql()? .binds(&[&1_000, &25_000]); assert_eq!("DELETE FROM company WHERE salary < 1000 OR salary > 25000;", &sql);
See more examples
Modules
arg | |
bind | |
prelude |
Structs
SqlBuilder | Main SQL builder |
Functions
baquote | Backquote string for SQL. |
dquote | Double quote string for SQL. |
esc | Escape string for SQL. |
quote | Quote string for SQL. |