An interpreter for a subset of SQL
The interpreter supports the following SQL commands:
- SELECT
- CREATE TABLE
- DROP TABLE
- INSERT
- UPDATE
- DELETE
- HELP
Commands like: Select, Insert & Delete have support for an optional 'WHERE' command with specific type of conditional queries ( condition1 AND condition2 AND ...) or (condition1 OR condition2 OR ...).
Queries are *NOT* case sensitive except with indentifiers and aren't affected by redundant white spaces.
FOREIGN & PRIMARY KEYS are also supported.
Example query := CREATE TABLE table_name (id INT PRIMARY KEY, name STR, dept INT FOREIGN KEY REFERENCES table_name table_column).
The query goes through the following stages to display the final result:
- Token Generation: Every query is first passed to a Scanner class that breaks down the query into tokens and returns an array of tokens.
- Parser: The array of tokens is passed to a Parser class that ensures syntactical correctness of the query and returns an object containing all the information the interpreter will need in its final stage.
- Interpreter: Depending on the type of query, the interpreter creates, modifies, deletes or displays the requested table(s).