Skip to main content

Command Palette

Search for a command to run...

TablePlus Database GUI: Universal Database Tool

Updated
7 min readView as Markdown
T

Welcome to TopperBlog! 👋

I'm a tech content creator passionate about helping developers level up their careers and master cutting-edge technologies.

🎯 What I Write About: • AI/ML Engineering & LLMs • Web3 & Blockchain Development
• System Design & Architecture • Interview Preparation (FAANG) • Freelancing & Remote Work • Modern Tech Stacks (Next.js, React, Rust, TypeScript) • Performance Optimization & Best Practices

💼 Mission: Sharing practical, actionable insights that accelerate your tech career and maximize your earning potential.

📚 15+ In-Depth Guides covering everything from earning $10k/month as a freelancer to cracking FAANG interviews.

🌐 Let's connect and grow together in this amazing tech journey!

#TechBlogger #SoftwareEngineering #CareerGrowth #WebDevelopment #AIEngineering

TablePlus Database GUI: Universal Database Tool

Hook

Tired of juggling multiple database clients? TablePlus is the sleek, native database management tool that connects to virtually any database—MySQL, PostgreSQL, SQLite, Redis, and more—all from one beautiful interface. Fast, intuitive, and built for modern developers.

Table of Contents

  1. What is TablePlus?
  2. Setup & Installation
  3. Code Examples
  4. Feature Comparison Table
  5. FAQ

What is TablePlus?

TablePlus is a modern, native database management GUI that supports multiple relational and NoSQL databases. It provides a clean, intuitive interface for database operations without sacrificing power or flexibility.

Key Features:

  • Multi-database support: MySQL, PostgreSQL, SQLite, Microsoft SQL Server, Redis, Cassandra, MongoDB, and more
  • Native performance: Built with native code for macOS, Windows, and Linux
  • Inline editing: Edit data directly in the table view with spreadsheet-like experience
  • Advanced filters: Query builder with visual interface
  • SSH & TLS support: Secure connections to remote databases
  • Code review: SQL syntax highlighting and auto-completion
  • Multiple tabs & windows: Work with multiple databases simultaneously

Setup & Installation

Installation

macOS:

# Using Homebrew
brew install --cask tableplus

# Or download from website
# Visit: https://tableplus.com/

Windows:

# Using Chocolatey
choco install tableplus

# Or download installer from tableplus.com

Linux:

# Debian/Ubuntu
wget -qO - https://deb.tableplus.com/apt.tableplus.com.gpg.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/tableplus-archive.gpg > /dev/null
sudo add-apt-repository "deb [arch=amd64] https://deb.tableplus.com/debian/22 tableplus main"
sudo apt update
sudo apt install tableplus

# Snap
sudo snap install tableplus

First Connection Setup

  1. Launch TablePlus and click "Create a new connection"
  2. Select database type (e.g., PostgreSQL, MySQL)
  3. Enter connection details:
    • Name: My Database
    • Host: localhost
    • Port: 5432 (PostgreSQL) or 3306 (MySQL)
    • User: your_username
    • Password: your_password
    • Database: your_database_name
  4. Test connection and click "Connect"

5 Code Examples

Example 1: Basic Query Execution

-- Select all users created in the last 30 days
SELECT 
    id,
    username,
    email,
    created_at
FROM users
WHERE created_at >= NOW() - INTERVAL '30 days'
ORDER BY created_at DESC
LIMIT 100;

-- TablePlus displays results in an editable grid
-- Double-click any cell to edit inline

Example 2: Using Query Parameters (Safe from SQL Injection)

-- In TablePlus, use $1, $2 for PostgreSQL or ? for MySQL
-- PostgreSQL parameterized query
SELECT * FROM products
WHERE category = $1
  AND price BETWEEN $2 AND $3
ORDER BY price ASC;

-- TablePlus will prompt for parameters:
-- $1: 'Electronics'
-- $2: 100
-- $3: 1000

Example 3: Complex JOIN with Aggregation

-- Analyze customer orders with product details
SELECT 
    c.customer_name,
    c.email,
    COUNT(DISTINCT o.order_id) as total_orders,
    SUM(oi.quantity * oi.unit_price) as total_spent,
    AVG(oi.unit_price) as avg_item_price,
    MAX(o.order_date) as last_order_date
FROM customers c
INNER JOIN orders o ON c.customer_id = o.customer_id
INNER JOIN order_items oi ON o.order_id = oi.order_id
WHERE o.order_date >= '2024-01-01'
GROUP BY c.customer_id, c.customer_name, c.email
HAVING SUM(oi.quantity * oi.unit_price) > 500
ORDER BY total_spent DESC;

-- Use TablePlus's "Export" feature to save results as CSV, JSON, or SQL

Example 4: Database Schema Exploration

-- PostgreSQL: View all tables with row counts
SELECT 
    schemaname,
    tablename,
    pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) AS size,
    (SELECT COUNT(*) FROM information_schema.columns 
     WHERE table_schema = schemaname AND table_name = tablename) as column_count
FROM pg_tables
WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC;

-- MySQL equivalent
SELECT 
    TABLE_SCHEMA,
    TABLE_NAME,
    TABLE_ROWS,
    ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) AS size_mb
FROM information_schema.TABLES
WHERE TABLE_SCHEMA NOT IN ('information_schema', 'mysql', 'performance_schema')
ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;

Example 5: Batch Data Update with Transaction

-- Update product prices with a 10% discount for specific category
-- TablePlus auto-wraps in transaction when using the GUI editor

BEGIN;

-- Create backup of current prices
CREATE TEMP TABLE price_backup AS
SELECT product_id, price, updated_at
FROM products
WHERE category = 'Winter Collection';

-- Apply discount
UPDATE products
SET 
    price = price * 0.90,
    updated_at = NOW(),
    discount_applied = true
WHERE category = 'Winter Collection'
  AND price > 50;

-- Verify changes
SELECT 
    p.product_id,
    p.product_name,
    pb.price as old_price,
    p.price as new_price,
    ROUND((pb.price - p.price), 2) as discount_amount
FROM products p
JOIN price_backup pb ON p.product_id = pb.product_id;

-- If satisfied, COMMIT; otherwise ROLLBACK;
COMMIT;

Feature Comparison Table

FeatureTablePlusMySQL WorkbenchpgAdminDBeaverDataGrip
Price$89 (lifetime)FreeFreeFree/Paid$199/year
Native Performance✅ Excellent⚠️ Moderate⚠️ Moderate⚠️ Moderate✅ Good
Multi-DB Support✅ 15+ databases❌ MySQL only❌ PostgreSQL only✅ 20+ databases✅ 15+ databases
Inline Editing✅ Spreadsheet-like⚠️ Limited⚠️ Limited✅ Yes✅ Yes
SSH Tunneling✅ Built-in✅ Built-in✅ Built-in✅ Built-in✅ Built-in
Query Auto-complete✅ Intelligent✅ Basic✅ Basic✅ Good✅ Excellent
Dark Mode✅ Native⚠️ Partial✅ Yes✅ Yes✅ Yes
Mobile App✅ iOS❌ No❌ No❌ No❌ No
Code Review✅ Yes⚠️ Limited⚠️ Limited✅ Yes✅ Excellent
Data Export Formats7+ formats4 formats3 formats10+ formats8+ formats
Learning Curve⭐ Easy⭐⭐ Moderate⭐⭐⭐ Steep⭐⭐ Moderate⭐⭐ Moderate

FAQ

General Questions

Q: Is TablePlus free?
A: TablePlus offers a free trial with full features but limited to 2 opened tabs and 2 opened windows. The full license costs $89 (one-time payment) for lifetime updates on a single platform, or $149 for all platforms.

Q: Which databases does TablePlus support?
A: TablePlus supports MySQL, PostgreSQL, SQLite, Microsoft SQL Server, Amazon Redshift, Redis, Cassandra, MongoDB, CockroachDB, Vertica, Oracle, and more. Check their website for the complete list.

Q: Can I use TablePlus on multiple computers?
A: Yes, a single license can be activated on up to 2 computers simultaneously. You can deactivate and reactivate on different machines as needed.

Technical Questions

Q: How do I connect to a remote database through SSH?
A: When creating a connection, enable "Over SSH" option, then provide SSH host, port, user, and authentication method (password or private key). TablePlus will tunnel your database connection through SSH automatically.

Q: Can I import/export data in bulk?
A: Yes, TablePlus supports importing from CSV, SQL, and JSON files. For export, you can choose from CSV, JSON, SQL, XML, Markdown, and more. Right-click on a table and select "Import" or "Export".

Q: Does TablePlus support database version control?
A: TablePlus doesn't have built-in version control, but it can export schema as SQL files which you can commit to Git. For advanced version control, consider using migration tools like Flyway or Liquibase alongside TablePlus.

Q: How do I execute multiple queries at once?
A: Write multiple queries separated by semicolons. Select the specific query you want to run (or select all with Cmd/Ctrl+A) and press Cmd/Ctrl+Enter. TablePlus will execute them sequentially.

Q: Can I customize keyboard shortcuts?
A: Yes, go to Preferences → Shortcuts to customize keyboard shortcuts for common operations like running queries, formatting SQL, switching tabs, etc.

Troubleshooting

Q: Connection timeout errors - what should I check?
A: Verify: (1) Database server is running, (2) Firewall allows connections on the database port, (3) Credentials are correct, (4) If remote, check if SSH tunnel is configured properly, (5) Database allows remote connections (check bind-address in MySQL or listen_addresses in PostgreSQL).

Q: Why is TablePlus slow with large result sets?
A: TablePlus loads results in batches. For very large datasets, use LIMIT clauses or filters to reduce result size. You can also adjust the "Rows per page" setting in Preferences → Data.

Q: How do I recover unsaved queries?
A: TablePlus auto-saves query tabs. If it crashes, reopen TablePlus and your queries should be restored. You can also check Preferences → General → "Restore tabs on startup".


Conclusion

TablePlus strikes an excellent balance between simplicity and power, making it ideal for developers who work with multiple databases and value a clean, native experience. While it's not free, the one-time payment model and lifetime updates make it a worthwhile investment for database professionals.

Best for: Full-stack developers, DevOps engineers, and teams working with multiple database systems
Not ideal for: Users needing only basic database access or those requiring advanced enterprise features like team collaboration and audit logs

Get Started: Download the free trial at tableplus.com and experience the difference a well-designed database tool can make.