I have made a file-based version of SQL, which can be used in a Python script, or in the terminal.
Here are some of things it can do:
import badsql
mydb = badsql.db(['id', 'name']) # Create database
mydb.insert(1, [1, 'Bob']) # Insert row in position 1
mydb.insert(2, [2, 'Sam']) # Insert row in position 2
mydb.insert(1, [0, 'Will']) # Insert row in position 1
mydb.display() # Display mydb
mydb.select('len(name) <= 3').display() # Display rows where length of name <= 3
mydb.save('table') # Save to file
badsql.load('table').display() # Load from file and display
Output:
| id | name |
| -- | ---- |
| 0 | Will |
| 1 | Bob |
| 2 | Sam |
| id | name |
| -- | ---- |
| 1 | Bob |
| 2 | Sam |
| id | name |
| -- | ---- |
| 0 | Will |
| 1 | Bob |
| 2 | Sam |
Or, from the terminal:
$ badsql_mkdb "Hello" "World"
| Hello | World |
| ----- | ----- |
$ badsql_insertrow 1 "Foo" "Bar"
| Hello | World |
| ----- | ----- |
| Foo | Bar |
$ badsql_insertrow 1 "val1" "val2"
| Hello | World |
| ----- | ----- |
| val1 | val2 |
| Foo | Bar |
$ badsql_insertrow 2 "test1" "test2"
| Hello | World |
| ----- | ----- |
| val1 | val2 |
| test1 | test2 |
| Foo | Bar |
$ badsql_select "len(Hello) <= 4"
| Hello | World |
| ----- | ----- |
| val1 | val2 |
| Foo | Bar |
$ badsql_display
| Hello | World |
| ----- | ----- |
| val1 | val2 |
| test1 | test2 |
| Foo | Bar |
$ badsql_removerow 2
| Hello | World |
| ----- | ----- |
| val1 | val2 |
| Foo | Bar |
You can view the code and documentation on Github:
badsql (from Python scripts)
badsql-tools (from the terminal)