A Python package for simplified SQL operations across MSSQL, PostgreSQL, MySQL, and SQLite.
Project description
SQLPy
SQLPy (sql_pydb) is a Python library to bridge the gap between Python and Database Tables.
Instalation Guide
pip install sql_pydb
- sql_pydb requires the following packages: Pandas, Numpy, pyodbc, python-dateutil
Overview:
- You can connect to MSSQL and SQLite.
- You can perform operations such as:
- Create Database(s)
- Create Table(s)
- Drop Column(s)
- Add Column(s)
- Alter Column Types (If database supports it)
- Performs a Try Cast check to be safe. (i.e. VARCHAR to INTEGER)
- Read from Table
- Delete from Table
- Drop Table(s)
Usage
- Example: Upload Pandas DataFrame to a MSSQL Database
from sql_pydb.Database import DatabaseType
from sql_pydb.Table import TableActions
table = TableActions(database=DATABASE, table_name=TABLE_NAME,
driver="ODBC Driver 17 for SQL Server",
server="url,port",
username="admin",
password="admin",
db_type=DatabaseType.MSSQL)
df = pd.read_csv("...file.csv")
table.identify_schema(df) # Figures out the best column types. Only needed 1 time per TableActions instance
table.sync_schema(update_column_types=True, add_new_columns=True, delete_old_columns=False) # Optional
status = table.insert_df(df, batch=1_000)
assert status == True
- Example: Upload Pandas DataFrame to a SQLite Database
from sql_pydb.Database import DatabaseType
from sql_pydb.Table import TableActions
table = TableActions(table_name=TABLE_NAME,
sqlite_path = SQLITE_PATH, # "./path/file.db"
db_type=DatabaseType.SQLITE)
df = pd.read_csv("...file.csv")
table.identify_schema(df) # Figures out the best column types. Only needed 1 time per TableActions instance
table.sync_schema(update_column_types=True, add_new_columns=True, delete_old_columns=False) # Optional
status = table.insert_df(df, batch=1_000)
assert status == True
- Example: Query Table
table = TableActions(...)
# ...
command = table.generate_select_all_sql()
df = table.run_query(command) # Returns pd.DataFrame
- Example: Execute Transactions
table = TableActions(...)
# ...
command1 = table.generate_add_columns_sql()
command2 = table.generate_drop_column_sql(column_name="UNUSED_COLUMN")
# ...
commandX = table.generate_insert_sql(df_new_records)
status = table.run_transaction([command1, command2, ..., commandX])
assert status == True
- Example: Create Table
from sql_pydb.Column import Column
from sql_pydb.Table import TableActions
table = TableActions(...)
# ...
user_defined_columns = [
Column("FIRST_NAME", data_type="VARCHAR", size=100),
...
Column("ADDRESS", data_type="VARCHAR"), # Default 255 for strings
]
table.identify_schema(df, user_defined_columns)
# Option 1: Let it automatically sync with the new defined columns
status = table.sync_schema(update_column_types=True, add_new_columns=True, delete_old_columns=False)
# Option 2: Manually create the table
command = table.generate_create_table_sql()
status = table.run_transaction([command])
assert status == True
- You may choose to replace
user_defined_columnswith a pd.DataFrame with["COLUMN", "DATA_TYPE", "SIZE"]columns.["DATABASE", "TABLE"]columns may also be passed in.
Support:
- If you have a question or need additional support, please create an issue ticket on SQLPy GitHub Repo.
Additional:
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sql_pydb-0.6.0.tar.gz
(12.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
sql_pydb-0.6.0-py3-none-any.whl
(13.0 kB
view details)
File details
Details for the file sql_pydb-0.6.0.tar.gz.
File metadata
- Download URL: sql_pydb-0.6.0.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4f8c2ef780d7aa7f88b978bbb2856a439dccf94ae98aa6ddcc7ab85d3b86259
|
|
| MD5 |
e73959a5f9658bfb34473af5a697b203
|
|
| BLAKE2b-256 |
0a7383aa18cf6344a72bb5caa0aed29c5fc7f7626abc8d9153f27068f052a40e
|
File details
Details for the file sql_pydb-0.6.0-py3-none-any.whl.
File metadata
- Download URL: sql_pydb-0.6.0-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
478f4975bc22a536fe03c0e46784f83a1bd7189b4647e050189a83f1c3262d1e
|
|
| MD5 |
7e8ecbbb22bbdf7056f9eb96305a3690
|
|
| BLAKE2b-256 |
b503c8a060e37b9da1bc9f060cf3f10963cee23bcc7ff36028e3f6531ef2ffb2
|