{"id":30523840,"url":"https://github.com/oyvinrog/sqlshell","last_synced_at":"2026-01-19T21:03:51.086Z","repository":{"id":282634374,"uuid":"949201749","full_name":"oyvinrog/SQLShell","owner":"oyvinrog","description":"A powerful SQL shell with GUI interface for data analysis","archived":false,"fork":false,"pushed_at":"2025-08-17T07:13:13.000Z","size":10077,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-17T09:08:00.365Z","etag":null,"topics":["analysis","delta-lake","duckdb","excel-import","sql","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oyvinrog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-15T22:39:03.000Z","updated_at":"2025-08-17T07:13:16.000Z","dependencies_parsed_at":"2025-03-15T23:25:28.083Z","dependency_job_id":"ea2d0fd9-6c34-4446-b6ef-6d82a6f99e1b","html_url":"https://github.com/oyvinrog/SQLShell","commit_stats":null,"previous_names":["oyvinrog/sqlshell"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/oyvinrog/SQLShell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oyvinrog%2FSQLShell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oyvinrog%2FSQLShell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oyvinrog%2FSQLShell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oyvinrog%2FSQLShell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oyvinrog","download_url":"https://codeload.github.com/oyvinrog/SQLShell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oyvinrog%2FSQLShell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272254470,"owners_count":24901047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-26T02:00:07.904Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","delta-lake","duckdb","excel-import","sql","sqlite"],"created_at":"2025-08-26T20:51:26.047Z","updated_at":"2026-01-19T21:03:51.074Z","avatar_url":"https://github.com/oyvinrog.png","language":"Python","readme":"# SQLShell\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/oyvinrog/SQLShell/main/assets/images/sqlshell_logo.png\" alt=\"SQLShell Logo\" width=\"180\" height=\"auto\"\u003e\n\n**A fast SQL interface for analyzing data files ✨**\n\n*Query CSV, Parquet, Excel files with SQL • DuckDB powered • No database setup required*\n\n[![GitHub Release](https://img.shields.io/github/v/release/oyvinrog/SQLShell)](https://github.com/oyvinrog/SQLShell/releases/latest)\n[![PyPI version](https://badge.fury.io/py/sqlshell.svg)](https://badge.fury.io/py/sqlshell)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Downloads](https://pepy.tech/badge/sqlshell)](https://pepy.tech/project/sqlshell)\n\n\u003cimg src=\"https://raw.githubusercontent.com/oyvinrog/SQLShell/main/assets/images/sqlshell_demo.png\" alt=\"SQLShell Interface\" width=\"80%\" height=\"auto\"\u003e\n\n[📥 Download](https://github.com/oyvinrog/SQLShell/releases/latest) • [🚀 Install](#-quick-install) • [📖 Examples](https://github.com/oyvinrog/SQLShell/wiki/Guides) • [🤝 Contribute](#-contributing)\n\n\n\n\u003c/div\u003e\n\n---\n\n\n\n##  What SQLShell Does\n\n**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.\n\n### 🔥 Key Features\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"33%\"\u003e\n\n**⚡ Fast File Analysis**\nLoad data files and search through millions of rows quickly. Built on DuckDB for analytical performance.\n\n\u003c/td\u003e\n\u003ctd width=\"33%\"\u003e\n\n**🎯 Smart Execution**\n`F5` runs all queries, `F9` runs current statement. Simple keyboard shortcuts for iterative analysis.\n\n\u003c/td\u003e\n\u003ctd width=\"33%\"\u003e\n\n**🧠 SQL Autocompletion**\nContext-aware suggestions that understand your loaded tables and column names.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### 📁 **File-Based Data Analysis**\n\n**Important**: SQLShell works with data files, not live databases. It's designed for:\n\n- **📊 Data Files** - CSV, Parquet, Excel, TSV, JSON files\n- **🗃️ Local Analysis** - Load files from your computer for SQL analysis  \n- **⚡ Fast Queries** - DuckDB engine optimized for analytical workloads\n- **🔍 Data Exploration** - Search and filter capabilities across your datasets\n\n**Not supported**: Live database connections (MySQL, PostgreSQL, etc.). Use dedicated database clients for those.\n\n### 💫 What Makes SQLShell Useful\n\n- **🏎️ DuckDB Powered** - Fast analytical queries on data files\n- **📊 Multiple File Formats** - CSV, Parquet, Excel, Delta, TSV, JSON support\n- **🎨 Clean Interface** - Simple SQL editor with result display\n- **🔍 Search Functionality** - Find data across result sets quickly\n- **🚀 Zero Database Setup** - No server installation or configuration needed\n\n---\n\n## 🚀 Quick Install\n\n### 📥 Download (Recommended)\n\nPre-built executables — **no Python installation required**:\n\n| Platform | Download | Install |\n|----------|----------|---------|\n| 🪟 **Windows** | [SQLShell Installer (.exe)](https://github.com/oyvinrog/SQLShell/releases/latest) | Run the installer |\n| 🐧 **Linux (Debian/Ubuntu)** | [SQLShell (.deb)](https://github.com/oyvinrog/SQLShell/releases/latest) | `sudo dpkg -i sqlshell_*.deb` |\n\n👉 [**View all releases**](https://github.com/oyvinrog/SQLShell/releases)\n\n---\n\n### 🐍 Install via pip\n\nAlternatively, install with pip if you have Python:\n\n```bash\npip install sqlshell\nsqls\n```\n\n**That's it!** 🎉 SQLShell opens and you can start loading data files.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🐧 Linux Users - One-Time Setup for Better Experience\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n# Create dedicated environment (recommended)\npython3 -m venv ~/.venv/sqlshell\nsource ~/.venv/sqlshell/bin/activate\npip install sqlshell\n\n# Add convenient alias\necho 'alias sqls=\"~/.venv/sqlshell/bin/sqls\"' \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e💻 Alternative Launch Methods\u003c/b\u003e\u003c/summary\u003e\n\nIf `sqls` doesn't work immediately:\n```bash\npython -c \"import sqlshell; sqlshell.start()\"\n```\n\n\u003c/details\u003e\n\n---\n\n## ⚡ Getting Started\n\n1. **Launch**: `sqls` \n2. **Load Data**: Click \"Load Files\" to import your CSV, Parquet, or Excel files\n3. **Query**: Write SQL queries against your loaded data\n4. **Execute**: Hit `Ctrl+Enter` or `F5` to run queries\n5. **Search**: Press `Ctrl+F` to search through results\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/oyvinrog/SQLShell/blob/main/assets/images/sqlshell_angle.gif?raw=true\" alt=\"SQLShell Live Demo\" width=\"60%\" height=\"auto\"\u003e\n\u003c/div\u003e\n\n---\n\n## 🔍 Search and Filter Features\n\n### ⚡ **Result Search with Ctrl+F**\n\nOnce you have query results, use `Ctrl+F` to search across all columns:\n\n- **Cross-column search** - Finds terms across all visible columns\n- **Case-insensitive** - Flexible text matching\n- **Instant feedback** - Filter results as you type\n- **Numeric support** - Search numbers and dates\n\n### 💪 **Practical Use Cases**\n\n| Use Case | Search Term | What It Finds |\n|----------|-------------|---------------|\n| **Error Analysis** | `\"error\"` | Error messages in log files |\n| **Data Quality** | `\"null\"` | Missing data indicators |\n| **ID Tracking** | `\"CUST_12345\"` | Specific customer records |\n| **Pattern Matching** | `\"*.com\"` | Email domains |\n\n**Workflow**: Load file → Query data → `Ctrl+F` → Search → `ESC` to clear\n\n---\n\n## 🤖 Data Analysis Features\n\n### 🔮 **Text Encoding**\nRight-click text columns to create binary indicator columns for analysis:\n\n```sql\n-- Original data\nSELECT category FROM products;\n-- \"Electronics\", \"Books\", \"Clothing\"\n\n-- After encoding\nSELECT \n    category_Electronics,\n    category_Books,\n    category_Clothing\nFROM products_encoded;\n```\n\n### 📊 **Column Analysis**\nRight-click columns for quick statistical analysis and correlation insights.\n\n---\n\n## 🚀 Power User Features\n\n### ⚡ F5/F9 Quick Execution\n- **`F5`** - Execute all SQL statements in sequence\n- **`F9`** - Execute only the current statement (where cursor is positioned)\n- **Useful for**: Testing queries step by step\n\n### 🧠 SQL Autocompletion\n- Press `Ctrl+Space` for suggestions\n- **After SELECT**: Available columns from loaded tables\n- **After FROM/JOIN**: Loaded table names\n- **After WHERE**: Column names with appropriate operators\n\n### 📊 File Format Support\nSQLShell can load and query:\n- **CSV/TSV** - Comma and tab-separated files\n- **Parquet** - Column-oriented format\n- **Excel** - .xlsx and .xls files  \n- **JSON** - Structured JSON data\n- **Delta** - Delta Lake format files\n\n---\n\n## 📝 Query Examples\n\n### Basic File Analysis\n```sql\n-- Load and explore your CSV data\nSELECT * FROM my_data LIMIT 10;\n\n-- Aggregate analysis\nSELECT \n    category,\n    AVG(price) as avg_price,\n    COUNT(*) as count\nFROM sales_data \nGROUP BY category\nORDER BY avg_price DESC;\n```\n\n### Multi-File Analysis\n```sql\n-- Join data from multiple loaded files\nSELECT \n    c.customer_name,\n    SUM(o.order_total) as total_spent\nFROM customers c\nJOIN orders o ON c.customer_id = o.customer_id\nGROUP BY c.customer_name\nORDER BY total_spent DESC\nLIMIT 10;\n```\n\n---\n\n## 🎯 Perfect For\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n**📊 Data Analysts**\n- Quick file exploration\n- CSV/Excel analysis\n- Report generation from files\n- Data quality checking\n\n**🔬 Data Scientists**\n- Dataset exploration\n- Feature analysis\n- Data preparation\n- Quick prototyping\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n**💼 Business Analysts**\n- Spreadsheet analysis with SQL\n- KPI calculations from files\n- Trend analysis\n- Data validation\n\n**🛠️ Developers**\n- Log file analysis\n- CSV processing\n- Data transformation\n- File-based testing\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## 📋 Requirements\n\n- **Python 3.8+** \n- **Auto-installed dependencies**: PyQt6, DuckDB, Pandas, NumPy\n\n**System Requirements**: SQLShell is a desktop application that works on Windows, macOS, and Linux.\n\n---\n\n## 💡 Tips for Better Productivity\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n### ⌨️ **Keyboard Shortcuts**\n- `Ctrl+F` → Search results\n- `F5` → Run all statements  \n- `F9` → Run current statement\n- `Ctrl+Enter` → Quick execute\n- `ESC` → Clear search\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n### 🎯 **Efficient File Loading**\n- Drag \u0026 drop files into the interface\n- Use \"Load Files\" button for selection\n- Load multiple related files for joins\n- Supported: CSV, Parquet, Excel, JSON, Delta\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### 🚀 **Typical Workflow**\n1. **Load files** (drag \u0026 drop or Load Files button)\n2. **Explore structure** (`SELECT * FROM table_name LIMIT 5`)\n3. **Build analysis** (use F9 to test statements)\n4. **Search results** (Ctrl+F for specific data)\n5. **Export findings** (copy results or save queries)\n\n---\n\n## 🔧 Advanced Features\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📊 Table Analysis Tools\u003c/b\u003e\u003c/summary\u003e\n\nRight-click loaded tables for:\n\n- **Column profiling** - Data types, null counts, unique values\n- **Quick statistics** - Min, max, average for numeric columns\n- **Sample data preview** - Quick look at table contents\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🔮 Column Operations\u003c/b\u003e\u003c/summary\u003e\n\nRight-click column headers in results:\n\n- **Text encoding** - Create binary columns from categories\n- **Statistical summary** - Distribution and correlation info\n- **Data type conversion** - Format suggestions\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e⚡ Performance Tips\u003c/b\u003e\u003c/summary\u003e\n\n- **File format matters** - Parquet files load faster than CSV\n- **Use LIMIT** - for initial exploration of large files\n- **Column selection** - Select only needed columns for better performance\n- **Indexing** - DuckDB automatically optimizes common query patterns\n\n\u003c/details\u003e\n\n---\n\n## 🤝 Contributing\n\nSQLShell is open source and welcomes contributions!\n\n```bash\ngit clone https://github.com/oyvinrog/SQLShell.git\ncd SQLShell\npip install -e .\n```\n\n**Ways to contribute:**\n- 🐛 Report bugs and issues\n- 💡 Suggest new features  \n- 📖 Improve documentation\n- 🔧 Submit pull requests\n- ⭐ Star the repo to show support\n\n---\n\n## 📄 License\n\nMIT License - feel free to use SQLShell in your projects!\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Ready to analyze your data files with SQL?**\n\n[📥 **Download for Windows/Linux**](https://github.com/oyvinrog/SQLShell/releases/latest) or install via pip:\n\n```bash\npip install sqlshell \u0026\u0026 sqls\n```\n\n⭐ **Star us on GitHub** if SQLShell helps with your data analysis!\n\n[📥 Download](https://github.com/oyvinrog/SQLShell/releases/latest) • [🚀 Get Started](#-quick-install) • [📖 Documentation](#-getting-started) • [🐛 Report Issues](https://github.com/oyvinrog/SQLShell/issues)\n\n*A simple tool for SQL-based file analysis*\n\n\u003c/div\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foyvinrog%2Fsqlshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foyvinrog%2Fsqlshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foyvinrog%2Fsqlshell/lists"}