Giter Club home page Giter Club logo

reallysimpledb's Introduction

ReallySimpleDB ๐Ÿงฉ

Icon

tests Codacy Badge PyPI version made-with-python Downloads

What is This


This is a Python application that can be used to manage sqlite databases without using any sql command.

๐Ÿš€ Installation

You can use pip:

~$ pip3 install ReallySimpleDB

or

~$ python setup.py install

๐Ÿ“— Usage

>> from ReallySimpleDB import dbmanager

>> _dbmanager = dbmanager()

Create database

>> _dbmanager.create_db(dbpath="test.db", replace=True)

Close connection

>> _dbmanager.close_connection()

Create table

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.

Get all tables

>> all_tables = _dbmanager.all_tables()

["STUDENT", "EXAM"]

Check table if exists

>> _dbmanager.is_table(database="test.db", table_name="STUDENTS")

True

Delete table from database

>> _dbmanager.delete_table(table="STUDENTS")

Add column to table

>> _dbmanager.add_columns(column_name="year", database="test.db", table="STUDENTS")

Get all columns

>> _dbmanager.get_columns(table="STUDENTS")

["student_id", "name", "mark"]

Get all columns with types

>> all_columns = _dbmanager.get_all_column_types(table="STUDENTS")

{"student_id": "TEXT", "name": "TEXT", "mark": "INT"}

Get columns type

>> _dbmanager.get_column_type(table="STUDENTS", column="student_id")

"TEXT"

Get primary key of a table

>> _dbmanager.get_primary_key(table="STUDENTS")

"student_id"

Add record to table

>> _dbmanager.add_record(table="STUDENTS", record={"student_id": "1010", "name":"ABC", "mark":10, "year":"2022"})

Get all records from a table

>> _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'}]

Get record from a table

>> _dbmanager.get_record(table="STUDENTS", primary_key="1010")

{'student_id': '1010', 'name': 'ABC', 'mark': 10, 'year': '2022'}

Delete record from a table

>> _dbmanager.delete_record(table="STUDENTS", primary_key="1010")

Filter record/s from a table

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'}]

๐ŸŒฑ Contributing Guide

  • 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.

Run pytest without installing package

If you are adding new functions as described above, please add test functions to tests/test_manager.py.

~$ python -m pytest -s tests

reallysimpledb's People

Contributors

truethari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

reallysimpledb's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.