Skip to main content

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlshell-5.0.5.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-5.0.5-py3-none-any.whl (5.0 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sqlshell-5.0.5.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-5.0.5.tar.gz
Algorithm Hash digest
SHA256 63b6d22c8837c8e2f6e8c56787b130eac8eec976f13fd8b641f4cb7f91ba7ef0
MD5 23ef7031da65ef33af4962d98954061c
BLAKE2b-256 7a03f5019bc33f5744133c39ca8908843f6090fa78126b31a95951bcd5d811ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlshell-5.0.5.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-5.0.5-py3-none-any.whl.

File metadata

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

File hashes

Hashes for sqlshell-5.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 791584d16668f301e9dfcaff56ae057c4a492807210f80e9cf6ba0ca1f29fb3c
MD5 488afe57ae38becb6905d29d069c1dd2
BLAKE2b-256 df6ac55f2860081e76115ce247fa82e239903f782e23943a737a1f182aad115d

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlshell-5.0.5-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.

Release history Release notifications | RSS feed

This release

5.0.5 This release

2 files

5.0.4

2 files

5.0.3

2 files

5.0.2

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.9

2 files

0.4.8

2 files

0.4.7

2 files

0.4.5

2 files

0.4.4

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.9

2 files

0.3.8

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.9

2 files

0.1.8

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 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