SQL Quick Start

The fastest way to use SQL in DBX.

1. Creating a Table

use dbx_core::Database;

let db = Database::open_in_memory()?;

db.execute_sql("CREATE TABLE users (
    id INT,
    name TEXT,
    age INT
)")?;

2. Inserting Data

db.execute_sql("INSERT INTO users VALUES (1, 'Alice', 30)")?;
db.execute_sql("INSERT INTO users VALUES (2, 'Bob', 25)")?;
db.execute_sql("INSERT INTO users VALUES (3, 'Charlie', 35)")?;

3. Basic Queries

// Query all data
let results = db.execute_sql("SELECT * FROM users")?;

// Filtering with conditions
let results = db.execute_sql("SELECT * FROM users WHERE age > 25")?;

// Ordering
let results = db.execute_sql("SELECT * FROM users ORDER BY age DESC")?;

4. Aggregate Functions

// Total count
let count = db.execute_sql("SELECT COUNT(*) FROM users")?;

// Average age
let avg = db.execute_sql("SELECT AVG(age) FROM users")?;

// Grouping and aggregation
let results = db.execute_sql("
    SELECT age, COUNT(*) as count
    FROM users
    GROUP BY age
")?;

5. Complete Example

use dbx_core::Database;

fn main() -> dbx_core::DbxResult<()> {
    let db = Database::open_in_memory()?;
    
    // Create table
    db.execute_sql("CREATE TABLE products (
        id INT,
        name TEXT,
        price REAL
    )")?;
    
    // Insert data
    db.execute_sql("INSERT INTO products VALUES (1, 'Laptop', 999.99)")?;
    db.execute_sql("INSERT INTO products VALUES (2, 'Mouse', 29.99)")?;
    
    // Execute query
    let results = db.execute_sql("
        SELECT name, price 
        FROM products 
        WHERE price > 50
        ORDER BY price DESC
    ")?;
    
    println!("Found {} products", results.batches[0].num_rows());
    
    Ok(())
}

Next Steps


Copyright © 2026 ByteLogicCore. MIT OR Apache-2.0 License.

This site uses Just the Docs, a documentation theme for Jekyll.