photoncloud-monorepo/docs/por/T037-flaredb-sql-layer/example-crud/README.md
centra 5c6eb04a46 T036: Add VM cluster deployment configs for nixos-anywhere
- netboot-base.nix with SSH key auth
- Launch scripts for node01/02/03
- Node configuration.nix and disko.nix
- Nix modules for first-boot automation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 09:59:19 +09:00

90 lines
2.3 KiB
Markdown

# FlareDB SQL Layer CRUD Example
This example demonstrates the basic CRUD operations using the FlareDB SQL layer.
## Prerequisites
1. A running FlareDB server on `127.0.0.1:8001`
2. Rust toolchain installed
## What This Example Does
The example performs the following operations:
1. **CREATE TABLE**: Creates a `users` table with columns (id, name, email, active)
2. **INSERT**: Inserts 4 sample users into the table
3. **SELECT \***: Queries all users
4. **SELECT with WHERE**: Queries only active users
5. **SELECT specific user**: Queries a single user by ID
6. **DROP TABLE**: Cleans up by dropping the table
## Running the Example
```bash
# Navigate to the example directory
cd docs/por/T037-flaredb-sql-layer/example-crud
# Run the example
cargo run --bin crud-example
```
## Expected Output
```
=== FlareDB SQL Layer CRUD Example ===
Connecting to FlareDB server at 127.0.0.1:8001...
Connected!
Step 1: Creating 'users' table...
✓ DdlSuccess("Table 'users' created")
Step 2: Inserting users...
✓ Inserted: Alice Johnson - DmlSuccess(1)
✓ Inserted: Bob Smith - DmlSuccess(1)
✓ Inserted: Carol White - DmlSuccess(1)
✓ Inserted: Dave Brown - DmlSuccess(1)
Step 3: Querying all users...
✓ Query result:
QueryResult { columns: ["id", "name", "email", "active"], rows: [...] }
Step 4: Querying active users only...
✓ Active users:
QueryResult { columns: ["id", "name", "email", "active"], rows: [...] }
Step 5: Querying user with id=2...
✓ Found user:
QueryResult { columns: ["id", "name", "email", "active"], rows: [...] }
Step 6: Dropping 'users' table...
✓ DdlSuccess("Table 'users' dropped")
=== Example completed ===
```
## Implementation Details
The example uses:
- `flaredb-client`: For connecting to the FlareDB server
- `flaredb-sql`: For executing SQL statements
All operations use strong consistency mode, ensuring ACID properties for SQL operations.
## Supported SQL Statements
Current SQL layer implementation supports:
- `CREATE TABLE` with primary key constraints
- `DROP TABLE`
- `INSERT INTO` with explicit column values
- `SELECT` with column list or `*`
- `WHERE` clause with comparison operators (=, <, >, <=, >=, !=)
## Future Enhancements
Planned features include:
- UPDATE and DELETE statements
- JOIN operations
- Aggregation functions (COUNT, SUM, AVG, etc.)
- ORDER BY and LIMIT clauses
- Indexes for query optimization