Skip to content

kulson/DesertDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DesertDB

Description

In-memory SQL database written in pure OCaml. Supports full CRUD operations (Create, Read, Update, Delete) with an interactive REPL for executing SQL queries.

Requirements

  • OCaml >= 5.0
  • Dune >= 3.0
  • Menhir >= 2.1

Install

opam install dune menhir

Build & Run

# Build
dune build

# Run interactive REPL
dune exec bin/main.exe

# Run tests
dune exec test/main.exe

Additional information

Case sensitivity information: SQL statements, expressions, and keywords should always be written in uppercase.

Example Usage

sql> CREATE TABLE users (id INT PRIMARY KEY, name STRING, age INT)
OK

sql> INSERT INTO users VALUES (1, 'Alice', 30), (2, 'Bob', 25)
2 row(s) affected

sql> SELECT * FROM users WHERE age > 20 ORDER BY name
id | name  | age
---|-------|----
1  | Alice | 30
2  | Bob   | 25
2 row(s)

sql> UPDATE users SET age = age + 1 WHERE name = 'Bob'
1 row(s) affected

sql> DELETE FROM users WHERE id = 1
1 row(s) affected

sql> SHOW TABLES
Tables:
  users

sql> DESCRIBE users
Column Name | Type    | Nullable | Primary Key
---------------------------------------------
id          | INT     | NO       | YES
name        | STRING  | YES      | NO
age         | INT     | YES      | NO

sql> DROP TABLE users
OK

Supported SQL

Statements

CREATE TABLE, DROP TABLE, SHOW TABLES, DESCRIBE, INSERT, SELECT, UPDATE, DELETE

Clauses

WHERE, ORDER BY, LIMIT, AS, PRIMARY KEY

Types

INT, FLOAT, STRING, BOOL, NULL

Expressions

  • Arithmetic: +, -, *, /
  • Comparison: =, <>, <, <=, >, >=
  • Logical: AND, OR, NOT
  • Null check: IS NULL

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages