Skip to main content

A powerful SQL shell with GUI interface for data analysis

Project description

SQLShell

SQLShell Logo

A fast SQL interface for analyzing data files โœจ

Query CSV, Parquet, Excel files with SQL โ€ข DuckDB powered โ€ข No database setup required

GitHub Release PyPI version Python 3.8+ License: MIT Downloads

SQLShell Interface

๐Ÿ“ฅ Download โ€ข ๐Ÿš€ Install โ€ข ๐Ÿ“– Examples โ€ข ๐Ÿค Contribute


What SQLShell Does

SQLShell is a desktop SQL interface specifically designed for analyzing data files. It's not a database client - instead, it lets you load CSV, Parquet, Excel, and other data files and query them with SQL using DuckDB's fast analytical engine.

๐Ÿ”ฅ Key Features

โšก Fast File Analysis Load data files and search through millions of rows quickly. Built on DuckDB for analytical performance.

๐ŸŽฏ Smart Execution F5 runs all queries, F9 runs current statement. Simple keyboard shortcuts for iterative analysis.

๐Ÿง  SQL Autocompletion Context-aware suggestions that understand your loaded tables and column names.

๐Ÿ“ File-Based Data Analysis

Important: SQLShell works with data files, not live databases. It's designed for:

  • ๐Ÿ“Š Data Files - CSV, Parquet, Excel, TSV, JSON files
  • ๐Ÿ—ƒ๏ธ Local Analysis - Load files from your computer for SQL analysis
  • โšก Fast Queries - DuckDB engine optimized for analytical workloads
  • ๐Ÿ” Data Exploration - Search and filter capabilities across your datasets

Not supported: Live database connections (MySQL, PostgreSQL, etc.). Use dedicated database clients for those.

๐Ÿ’ซ What Makes SQLShell Useful

  • ๐ŸŽ๏ธ DuckDB Powered - Fast analytical queries on data files
  • ๐Ÿ“Š Multiple File Formats - CSV, Parquet, Excel, Delta, TSV, JSON support
  • ๐ŸŽจ Clean Interface - Simple SQL editor with result display
  • ๐Ÿ” Search Functionality - Find data across result sets quickly
  • ๐Ÿš€ Zero Database Setup - No server installation or configuration needed

๐Ÿš€ Quick Install

๐Ÿ“ฅ Download (Recommended)

Pre-built executables โ€” no Python installation required:

Platform Download Install
๐ŸชŸ Windows SQLShell Installer (.exe) Run the installer
๐Ÿง Linux (Debian/Ubuntu) SQLShell (.deb) sudo dpkg -i sqlshell_*.deb

๐Ÿ‘‰ View all releases


๐Ÿ Install via pip

Alternatively, install with pip if you have Python:

pip install sqlshell
sqls

That's it! ๐ŸŽ‰ SQLShell opens and you can start loading data files.

๐Ÿง Linux Users - One-Time Setup for Better Experience
# Create dedicated environment (recommended)
python3 -m venv ~/.venv/sqlshell
source ~/.venv/sqlshell/bin/activate
pip install sqlshell

# Add convenient alias
echo 'alias sqls="~/.venv/sqlshell/bin/sqls"' >> ~/.bashrc
source ~/.bashrc
๐Ÿ’ป Alternative Launch Methods

If sqls doesn't work immediately:

python -c "import sqlshell; sqlshell.start()"

โšก Getting Started

  1. Launch: sqls
  2. Load Data: Click "Load Files" to import your CSV, Parquet, or Excel files
  3. Query: Write SQL queries against your loaded data
  4. Execute: Hit Ctrl+Enter or F5 to run queries
  5. Search: Press Ctrl+F to search through results
SQLShell Live Demo

๐Ÿ” Search and Filter Features

โšก Result Search with Ctrl+F

Once you have query results, use Ctrl+F to search across all columns:

  • Cross-column search - Finds terms across all visible columns
  • Case-insensitive - Flexible text matching
  • Instant feedback - Filter results as you type
  • Numeric support - Search numbers and dates

๐Ÿ’ช Practical Use Cases

Use Case Search Term What It Finds
Error Analysis "error" Error messages in log files
Data Quality "null" Missing data indicators
ID Tracking "CUST_12345" Specific customer records
Pattern Matching "*.com" Email domains

Workflow: Load file โ†’ Query data โ†’ Ctrl+F โ†’ Search โ†’ ESC to clear


๐Ÿค– Data Analysis Features

๐Ÿ”ฎ Text Encoding

Right-click text columns to create binary indicator columns for analysis:

-- Original data
SELECT category FROM products;
-- "Electronics", "Books", "Clothing"

-- After encoding
SELECT 
    category_Electronics,
    category_Books,
    category_Clothing
FROM products_encoded;

๐Ÿ“Š Column Analysis

Right-click columns for quick statistical analysis and correlation insights.


๐Ÿš€ Power User Features

โšก F5/F9 Quick Execution

  • F5 - Execute all SQL statements in sequence
  • F9 - Execute only the current statement (where cursor is positioned)
  • Useful for: Testing queries step by step

๐Ÿง  SQL Autocompletion

  • Press Ctrl+Space for suggestions
  • After SELECT: Available columns from loaded tables
  • After FROM/JOIN: Loaded table names
  • After WHERE: Column names with appropriate operators

๐Ÿ“Š File Format Support

SQLShell can load and query:

  • CSV/TSV - Comma and tab-separated files
  • Parquet - Column-oriented format
  • Excel - .xlsx and .xls files
  • JSON - Structured JSON data
  • Delta - Delta Lake format files

๐Ÿ“ Query Examples

Basic File Analysis

-- Load and explore your CSV data
SELECT * FROM my_data LIMIT 10;

-- Aggregate analysis
SELECT 
    category,
    AVG(price) as avg_price,
    COUNT(*) as count
FROM sales_data 
GROUP BY category
ORDER BY avg_price DESC;

Multi-File Analysis

-- Join data from multiple loaded files
SELECT 
    c.customer_name,
    SUM(o.order_total) as total_spent
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_name
ORDER BY total_spent DESC
LIMIT 10;

๐ŸŽฏ Perfect For

๐Ÿ“Š Data Analysts

  • Quick file exploration
  • CSV/Excel analysis
  • Report generation from files
  • Data quality checking

๐Ÿ”ฌ Data Scientists

  • Dataset exploration
  • Feature analysis
  • Data preparation
  • Quick prototyping

๐Ÿ’ผ Business Analysts

  • Spreadsheet analysis with SQL
  • KPI calculations from files
  • Trend analysis
  • Data validation

๐Ÿ› ๏ธ Developers

  • Log file analysis
  • CSV processing
  • Data transformation
  • File-based testing

๐Ÿ“‹ Requirements

  • Python 3.8+
  • Auto-installed dependencies: PyQt6, DuckDB, Pandas, NumPy

System Requirements: SQLShell is a desktop application that works on Windows, macOS, and Linux.


๐Ÿ’ก Tips for Better Productivity

โŒจ๏ธ Keyboard Shortcuts

  • Ctrl+F โ†’ Search results
  • F5 โ†’ Run all statements
  • F9 โ†’ Run current statement
  • Ctrl+Enter โ†’ Quick execute
  • ESC โ†’ Clear search

๐ŸŽฏ Efficient File Loading

  • Drag & drop files into the interface
  • Use "Load Files" button for selection
  • Load multiple related files for joins
  • Supported: CSV, Parquet, Excel, JSON, Delta

๐Ÿš€ Typical Workflow

  1. Load files (drag & drop or Load Files button)
  2. Explore structure (SELECT * FROM table_name LIMIT 5)
  3. Build analysis (use F9 to test statements)
  4. Search results (Ctrl+F for specific data)
  5. Export findings (copy results or save queries)

๐Ÿ”ง Advanced Features

๐Ÿ“Š Table Analysis Tools

Right-click loaded tables for:

  • Column profiling - Data types, null counts, unique values
  • Quick statistics - Min, max, average for numeric columns
  • Sample data preview - Quick look at table contents
๐Ÿ”ฎ Column Operations

Right-click column headers in results:

  • Text encoding - Create binary columns from categories
  • Statistical summary - Distribution and correlation info
  • Data type conversion - Format suggestions
โšก Performance Tips
  • File format matters - Parquet files load faster than CSV
  • Use LIMIT - for initial exploration of large files
  • Column selection - Select only needed columns for better performance
  • Indexing - DuckDB automatically optimizes common query patterns

๐Ÿค Contributing

SQLShell is open source and welcomes contributions!

git clone https://github.com/oyvinrog/SQLShell.git
cd SQLShell
pip install -e .

Ways to contribute:

  • ๐Ÿ› Report bugs and issues
  • ๐Ÿ’ก Suggest new features
  • ๐Ÿ“– Improve documentation
  • ๐Ÿ”ง Submit pull requests
  • โญ Star the repo to show support

๐Ÿ“„ License

MIT License - feel free to use SQLShell in your projects!


Ready to analyze your data files with SQL?

๐Ÿ“ฅ Download for Windows/Linux or install via pip:

pip install sqlshell && sqls

โญ Star us on GitHub if SQLShell helps with your data analysis!

๐Ÿ“ฅ Download โ€ข ๐Ÿš€ Get Started โ€ข ๐Ÿ“– Documentation โ€ข ๐Ÿ› Report Issues

A simple tool for SQL-based file analysis

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

sqlshell-0.4.9.tar.gz (5.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqlshell-0.4.9-py3-none-any.whl (4.9 MB view details)

Uploaded Python 3

File details

Details for the file sqlshell-0.4.9.tar.gz.

File metadata

  • Download URL: sqlshell-0.4.9.tar.gz
  • Upload date:
  • Size: 5.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sqlshell-0.4.9.tar.gz
Algorithm Hash digest
SHA256 f31d64d0e1c82f7b404b4b643eec2006d090a620dd0d9cbef137b3eff9bab72e
MD5 39331913ea924a852a53c44dfad65901
BLAKE2b-256 6ccb69520f9d390a4139fd316467d0c8a345830eb8747262614b6501abb24f71

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlshell-0.4.9.tar.gz:

Publisher: build-release.yml on oyvinrog/SQLShell

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlshell-0.4.9-py3-none-any.whl.

File metadata

  • Download URL: sqlshell-0.4.9-py3-none-any.whl
  • Upload date:
  • Size: 4.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sqlshell-0.4.9-py3-none-any.whl
Algorithm Hash digest
SHA256 186f90f951ddf40aa5d92f28b00b98bb11b972f0e25fedb88f9ec0c4c85148cc
MD5 074b4b46054030fb2038efa7b450db10
BLAKE2b-256 60e6a7622f3f5168418f8e64595d475f5c180429b8f9fef8b9f85e9a52945273

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlshell-0.4.9-py3-none-any.whl:

Publisher: build-release.yml on oyvinrog/SQLShell

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page