Skip to content

Jabex113/db-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DATA-BOS Database

A lightweight custom database system written in C++ with basic SQL-like support.

Features

SQL-style commands

Supports INT, FLOAT, VARCHAR(n)

Full CRUD operations

File-based persistent storage

WHERE clauses with standard operators

Simple interactive CLI

Build make

Builds the databos executable.

Run make run

or

./databos

Commands CREATE TABLE CREATE TABLE users (id INT, name VARCHAR(100), age INT, salary FLOAT);

INSERT INSERT INTO users (id, name, age, salary) VALUES (1, 'John Doe', 30, 50000.50);

SELECT SELECT * FROM users; SELECT name, age FROM users; SELECT * FROM users WHERE age > 25;

Supported operators: =, !=, <, >, <=, >=

UPDATE UPDATE users SET salary = 55000 WHERE id = 1;

Requires WHERE clause

DELETE DELETE FROM users WHERE id = 2;

Requires WHERE clause

DROP TABLE DROP TABLE users;

SHOW TABLES SHOW TABLES;

DESCRIBE DESCRIBE users; -- or DESC users;

HELP HELP;

EXIT EXIT; -- or QUIT;

Example Session DATA-BOS> CREATE TABLE employees (id INT, name VARCHAR(50), department VARCHAR(50), salary FLOAT); DATA-BOS> INSERT INTO employees (id, name, department, salary) VALUES (1, 'Alice', 'Engineering', 75000.00); DATA-BOS> INSERT INTO employees (id, name, department, salary) VALUES (2, 'Bob', 'Marketing', 65000.00); DATA-BOS> SELECT * FROM employees; DATA-BOS> UPDATE employees SET salary = 85000 WHERE id = 1; DATA-BOS> DELETE FROM employees WHERE id = 2; DATA-BOS> SHOW TABLES; DATA-BOS> DESC employees; DATA-BOS> EXIT;

Storage

Data is stored in databos_storage/

Each table = one .dbt file

Auto-saves on table/data changes

Auto-loads on startup

Clean Up make clean

Removes binaries and storage files.

Architecture

database.cpp/h: Core logic (tables, rows, storage)

parser.cpp/h: Parses SQL-like commands

executor.cpp/h: Executes parsed queries

main.cpp: CLI interface

Safety

UPDATE/DELETE require WHERE to avoid mass changes

Data is auto-persisted

Type-safe values

Checks for table existence before ops

Roadmap / Ideas

JOIN support

Indexing

Transactions (BEGIN, COMMIT, ROLLBACK)

More data types: DATE, BOOLEAN, BLOB

Aggregates: COUNT, SUM, AVG, etc.

ORDER BY, GROUP BY

NULL handling

Keys and constraints

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published