This is a lightweight SQL-like database engine implemented in C++. It features a command-line interface, custom tokenizer, parser, and binary file-backed table storage. It supports simple SQL commands including SELECT, INSERT, and conditional queries using a custom-built relational engine.
- Interactive SQL command line interface
- Batch command execution via
commands.txt - Binary file-based table storage (e.g.,
student.bin,employee.bin) - Tokenizer and parser with support for basic SQL syntax
- Shunting Yard and Reverse Polish Notation (RPN) evaluation
- Error handling with specific messages
- Modular design using STL and custom components
- Unit tests using GoogleTest
.
├── CMakeLists.txt # Build configuration
├── main.cpp # Entry point: handles CLI and batch execution
├── commands.txt # Batch SQL commands
├── tables.txt # Table index/config
├── includes/ # All logic: tokenizer, parser, sql engine
├── _tests/ # Unit test files using GoogleTest
├── *.bin # Binary table storage files
└── *.txt # Table field descriptions and selected outputs