top of page

BadSQL

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:


bottom of page