SQLValidator

0.0.20 · active · verified Fri Apr 17

SQLValidator is a Python library (current version 0.0.20) for formatting, syntactic, and semantic validation of SQL queries. It's built on `sqlparse` and provides a simple `SQLValidation` object and a helper `validate_sql` function. Releases are typically driven by new SQL feature support and bug fixes, with minor versions often adding functionality.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates basic syntactic validation, formatting, and more advanced semantic validation by providing a table schema. The `is_valid` property and `errors` list provide detailed results.

from sqlvalidator import SQLValidation

# Example 1: Basic syntax validation and formatting
sql_query_1 = "SELECT * FROM users WHERE id = 1 AND name = 'Alice'"
sql_obj_1 = SQLValidation(sql_query_1)

print(f"Query 1 validation result: {sql_obj_1.validate()}")
print(f"Query 1 errors: {sql_obj_1.errors}")
print(f"Formatted Query 1:\n{sql_obj_1.format()}")

# Example 2: Semantic validation with table schema
sql_query_2 = "SELECT first_name, email FROM employees WHERE department_id = 10"
sql_obj_2 = SQLValidation(sql_query_2)

# Define table schema for semantic validation
tables_schema = {
    'employees': ['id', 'first_name', 'last_name', 'email', 'department_id'],
    'departments': ['id', 'name']
}

sql_obj_2.validate(tables=tables_schema)
print(f"\nQuery 2 validation result (semantic): {sql_obj_2.is_valid}")
print(f"Query 2 errors (semantic): {sql_obj_2.errors}")

# Example 3: Invalid query
invalid_sql = "SELECT FROM users WHERE id = 1"
sql_obj_3 = SQLValidation(invalid_sql)
sql_obj_3.validate()
print(f"\nInvalid query errors: {sql_obj_3.errors}")

view raw JSON →