Metadata-Version: 2.4
Name: dbe-engine
Version: 0.1.0
Summary: Lightweight, dependency-free database engine with Estonian-language SQL-like keywords (LOO TABEL, VALI, LISA TABELISSE, UUENDA, KUSTUTA), backed by a simple JSON file format.
Author-email: martin.mattias.tarkus1@gmail.com
License: MIT
Keywords: estonian,eesti,sql,database,education,õppevahend
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Database
Classifier: Topic :: Education
Classifier: Natural Language :: Estonian
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# dbe-engine

Lightweight, dependency-free database engine with **Estonian-language**
SQL-like keywords, backed by a simple JSON file format (`.dbe`).

```
LOO TABEL kasutajad (id TÄISARV PÕHIVÕTI, nimi TEKST);
LISA TABELISSE kasutajad (id, nimi) VÄÄRTUSED (1, 'Mari');
VALI KÕIK TABELIST kasutajad KUS id = 1;
```

## Install

```
pip install dbe-engine
```

## Usage

```python
from dbe_engine.engine import Database
from dbe_engine import storage

path = "minu.dbe"
storage.save(path, storage.empty_database())

db = Database(path)
results = db.execute_script(
    "LOO TABEL kasutajad (id TÄISARV PÕHIVÕTI, nimi TEKST);"
    "LISA TABELISSE kasutajad (id, nimi) VÄÄRTUSED (1, 'Mari');"
    "VALI KÕIK TABELIST kasutajad;"
)
for r in results:
    print(r)
```

## Supported commands

| Eesti keeles | SQL vaste |
|---|---|
| `LOO TABEL nimi (veerg TÜÜP [PÕHIVÕTI] [KOHUSTUSLIK], ...)` | `CREATE TABLE` |
| `KUSTUTA TABEL nimi` | `DROP TABLE` |
| `NÄITA TABELEID` | `SHOW TABLES` |
| `KIRJELDA nimi` | `DESCRIBE` |
| `LISA TABELISSE nimi (...) VÄÄRTUSED (...)` | `INSERT INTO` |
| `VALI veerud TABELIST nimi [KUS ...] [JÄRJESTA ...] [PIIRA ...]` | `SELECT` |
| `UUENDA nimi MÄÄRA veerg = väärtus [KUS ...]` | `UPDATE` |
| `KUSTUTA TABELIST nimi [KUS ...]` | `DELETE FROM` |

Types: `TÄISARV` (int), `MURDARV` (float), `TEKST` (text), `TÕEVÄÄRTUS` (bool).

## License

MIT
