2 个版本
新 0.1.7 | 2024 年 8 月 22 日 |
---|---|
0.1.6 | 2024 年 8 月 21 日 |
0.1.5 |
|
0.1.3 |
|
0.1.2 |
|
#951 in 数据库接口
每月 90 次下载
36KB
753 行
Lumus sql builder
关于项目
Lumus SQL Builder 是一个 Rust 库,允许您以编程和直观的方式为简单项目构建复杂的 SQL 查询。它支持各种 SQL 操作,包括列选择、连接、WHERE 子句、分组、排序等。
功能
- 创建表
- 数据插入
- 数据选择,支持 DISTINCT、GROUP BY、ORDER BY、LIMIT 和 OFFSET
- 简单创建 WHERE 子句的方法
示例用法
创建表
use lumus_sql_builder::sqlite::{CreateTable, Column};
fn main() {
let create_table = CreateTable::new("employees", vec![
Column::new("id").integer().primary_key().auto_increment(),
Column::new("name").text().not_null(),
Column::new("age").integer().not_null(),
Column::new("department").text().default("'Undefined'"),
Column::new("salary").real(),
Column::new("hired_date").datetime(),
Column::new("manager_id").integer()
]);
println!("{}", create_table.build().unwrap());
}
输出
CREATE TABLE employees (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL,
department TEXT DEFAULT 'Undefined',
salary REAL,
hired_date DATETIME,
manager_id INTEGER
);
插入数据
use lumus_sql_builder::sqlite::Insert;
fn main() {
let insert = Insert::new("employees").values(vec![
("name", "John"),
("age", "30"),
("department", "IT"),
("salary", "5000.00"),
("hired_date", "2024-03-20"),
("manager_id", "1")
]);
println!("{}", insert.build().unwrap());
}
输出
INSERT INTO employees (name, age, department, salary, hired_date, manager_id) VALUES ('John', '30', 'IT', '5000.00', '2024-03-20', '1');
选择数据
use lumus_sql_builder::sqlite::{Select, Where};
fn main() {
let select = Select::new("employees")
.columns("name, age, department")
.condition(Where::from("age > 25").build())
.order("age DESC")
.limit(10);
println!("{}", select.build().unwrap());
}
输出
SELECT name, age, department FROM employees WHERE age > 25 ORDER BY age DESC LIMIT 10;