Skip to main content

sql_via_code

Overview

sql_via_code is a library for executing SQL queries, stored procedures, table backups, and reading queries from files, all with a clean and simple interface.


Features

  1. Query Execution: Execute SQL queries and fetch the results as a pandas DataFrame.
  2. Stored Procedure Execution: Run stored procedures with input parameters.
  3. Table Backup: Automatically back up a specified table's data before executing a query or procedure.
  4. Query from File: Read and execute SQL queries from external files to improve maintainability.
  5. Engine Management: Close all active database engines cleanly using close_engines.

Functions

get_query_from_db

Executes a SQL query and optionally backs up a table.

Parameters:

  • query (str): SQL query to execute.
  • table_to_backup (str or None): Table to back up. Pass None to skip the backup.
  • env_file_name (str, optional): Path to the .env file for database credentials (default is .env).
  • params (dict, optional): Query parameters.

Returns:

  • A pandas.DataFrame containing query results.

exec_procedure_from_db

Executes a stored procedure and optionally backs up a table.

Parameters:

  • procedure_name (str): Name of the stored procedure.
  • table_to_backup (str or None): Table to back up. Pass None to skip the backup.
  • env_file_name (str, optional): Path to the .env file for database credentials (default is .env).
  • params (dict, optional): Procedure parameters.

Returns:

  • A pandas.DataFrame containing procedure output.

get_query_from_file

Reads and executes an SQL query from a file.

Parameters:

  • file_path (str): Path to the .sql or .txt file containing the query.
  • table_to_backup (str or None): Table to back up before executing the query. Pass None to skip the backup.
  • env_file_name (str, optional): Path to the .env file for database credentials.
  • params (tuple or dict, optional): Parameters to bind to the SQL query.

Returns:

  • A pandas.DataFrame containing query results.

Example:

from sql_via_code import get_query_from_file

Read and execute a query from a file

result_df = get_query_from_file("queries/select_employees.sql", table_to_backup="employees") print(result_df)


close_engines

Closes all active database engines.

Important:
It is recommended to call this function at the end of your program to ensure that all database connections are closed properly and no resources are leaked.

Usage:

from sql_via_code import close_engines

Close all active database engines

close_engines()


Installation

To install the package and dependencies:

bash pip install sql_via_code


Dependencies

The project requires the following libraries:

  • pandas==2.2.3
  • SQLAlchemy==2.0.36
  • python-dotenv==1.0.1
  • pyodbc==5.2.0
  • aiofiles==24.1.0
  • tabulate==0.9.0
  • asyncpg==0.30.0 (for PostgreSQL)
  • aiomysql==0.2.0 (for MySQL)
  • aiosqlite==0.20.0 (for SQLite)

Environment Setup

Ensure you have a .env file in the root directory with the following database configuration:

plaintext DB_TYPE=your_db_type USER=your_username PASSWORD=your_password HOST=your_host NAME=your_database_name DRIVER=your_driver

Example .env file for MSSQL:

plaintext DB_TYPE=mssql USER=admin PASSWORD=secretpassword HOST=127.0.0.1 NAME=my_database DRIVER=ODBC Driver 17 for SQL Server

Example .env file for SQLite:

plaintext DB_TYPE=sqlite NAME=example.db


Usage Examples

Example 1: Executing a Query with Backup

python from sql_via_code import get_query_from_db

query = "SELECT * FROM employees" result_df = await get_query_from_db(query, table_to_backup="employees") print(result_df)


Example 2: Executing a Stored Procedure

python from sql_via_code import exec_procedure_from_db

procedure_name = "sp_get_employee_data" params = {"department": "Sales"} result_df = await exec_procedure_from_db(procedure_name, table_to_backup="employees", params=params) print(result_df)


Example 3: Reading Query from File

from sql_via_code import get_query_from_file, get_query_from_db, close_engines

query = get_query_from_file("queries/select_employees.sql", table_to_backup="employees") result_df = get_query_from_db(query, table_to_backup="employees") print(result_df)

Final step: Close all engines

close_engines()


Supported Databases

Database DB_TYPE Required Fields
SQLite sqlite NAME
PostgreSQL postgresql USER, PASSWORD, HOST, NAME
MySQL mysql USER, PASSWORD, HOST, NAME
MSSQL mssql USER, PASSWORD, HOST, NAME, DRIVER
Oracle oracle USER, PASSWORD, HOST, NAME

Metadata

Release files for sql-via-code 0.3.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sql-via-code 0.3.6
File Size Uploaded
sql_via_code-0.3.6.tar.gz 10.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sql-via-code 0.3.6
File Interpreter ABI Platform
sql_via_code-0.3.6-py3-none-any.whl Python 3 none any Details

Total release size: 19.1 kB

Release files / sql_via_code-0.3.6.tar.gz

Download URL sql_via_code-0.3.6.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
547b4e91f37f3be571ed4844f3b8d0d035b0e14cdabac14d66b6772f27e328ba
BLAKE2b-256 checksum
How to use checksums
e078e235d7a39d54bee9d80f06cec4eb1fd7c5fa79d23b723fc2721f675012d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.6

Release files / sql_via_code-0.3.6-py3-none-any.whl

Download URL sql_via_code-0.3.6-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d334f967a11238fc39db3808ccbed00eaf49e2f231f1f0bad797f66cfea1b95d
BLAKE2b-256 checksum
How to use checksums
df6592a5d5dc9acdc1f97828755f3265f79e584d224bef468c473af4371f547a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.6

Release history Release notifications | RSS feed

This release

0.3.6 This release

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page