This is a Python application that can be used to manage sqlite databases without using any sql command.
You can use pip:
~$ pip3 install ReallySimpleDB
or
~$ python setup.py install
>> from ReallySimpleDB import dbmanager
>> _dbmanager = dbmanager()
>> _dbmanager.create_db(dbpath="test.db", replace=True)
>> _dbmanager.close_connection()
Here you can not directly call the create_table
function. Because sqlite cannot create table without columns. So you must first define the columns and create a table.
Important: You have to close connection here. If not, code returns error. Because it tries to add column to existing table.
>> _dbmanager.close_connection()
>> _dbmanager.add_columns(column_name="student_id", primary_key=True)
>> _dbmanager.add_columns(column_name="name", not_null=True)
>> _dbmanager.add_columns(column_name="mark", datatype="INT")
>> _dbmanager.create_table(database="test.db", table_name="STUDENTS")
If you want to add columns to an existing table, read the Add column to table section.
>> all_tables = _dbmanager.all_tables()
["STUDENT", "EXAM"]
>> _dbmanager.is_table(database="test.db", table_name="STUDENTS")
True
>> _dbmanager.delete_table(table="STUDENTS")
>> _dbmanager.add_columns(column_name="year", database="test.db", table="STUDENTS")
>> _dbmanager.get_columns(table="STUDENTS")
["student_id", "name", "mark"]
>> all_columns = _dbmanager.get_all_column_types(table="STUDENTS")
{"student_id": "TEXT", "name": "TEXT", "mark": "INT"}
>> _dbmanager.get_column_type(table="STUDENTS", column="student_id")
"TEXT"
>> _dbmanager.get_primary_key(table="STUDENTS")
"student_id"
>> _dbmanager.add_record(table="STUDENTS", record={"student_id": "1010", "name":"ABC", "mark":10, "year":"2022"})
>> _dbmanager.get_all_records(table="STUDENTS", primary_key="1010")
[{'student_id': '1010', 'name': 'ABC', 'mark': 10, 'year': '2022'}, {'student_id': '1011', 'name': 'DEF', 'mark': 100, 'year': '2022'}]
>> _dbmanager.get_record(table="STUDENTS", primary_key="1010")
{'student_id': '1010', 'name': 'ABC', 'mark': 10, 'year': '2022'}
>> _dbmanager.delete_record(table="STUDENTS", primary_key="1010")
If you want to filter equal values, add value without any operator.
Examples:
{"year":2022}
✔️{"year":" == 2022"}
❌
🖇 Comparison operators
Comparison Operator | Description |
---|---|
!= | Not Equal |
> | Greater Than |
>= | Greater Than or Equal |
< | Less Than |
<= | Less Than or Equal |
Examples:
{"marks":"<= 10"}
✔️{"marks":"== 10"}
❌{"name":"< ABC"}
❌ 'Greater Than' and 'Less than' comparisons are not supported with Strings
Important: If you are trying to compare strings, please use string between Inch Marks.
{"grade":"!= 'A'"}
✔️{"grade":"!= A"}
❌
>> _dbmanager.filter_records(table="STUDENTS", values={"year":"2022"})
[{'student_id': '1010', 'name': 'ABC', 'mark': 10, 'year': '2022'}, {'student_id': '1011', 'name': 'DEF', 'mark': 100, 'year': '2022'}]
-
Fork the project from the
alpha
branch and submit a Pull Request (PR)-
Explain what the PR fixes or improves.
-
If your PR aims to add a new feature, provide test functions as well.
-
-
Use sensible commit messages
- If your PR fixes a separate issue number, include it in the commit message.
-
Use a sensible number of commit messages as well
- e.g. Your PR should not have 1000s of commits.
If you are adding new functions as described above, please add test functions to tests/test_manager.py
.
~$ python -m pytest -s tests