← Back to MySQL Course | Chapter 19: Advanced & Reference | Lesson 1 of 5

SHOW TABLES & DESCRIBE

SHOW TABLES lists everything in the cabinet, and DESCRIBE opens one table to show its column names and what kind of thing each holds.
Syntax
sql
SHOW TABLES;
DESCRIBE table_name;

Showing All Tables

SHOW TABLES lists every table that exists in the currently selected database, which is usually the first command you run when getting oriented inside an unfamiliar schema.

Example: Showing All Tables

sql
SHOW TABLES;

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

Getting Table Metadata with DESCRIBE

DESCRIBE reveals a table's structure at a glance — its column names, their data types, and whether each column is allowed to hold NULL — without needing to open the original CREATE TABLE statement.

Example: Getting Table Metadata with DESCRIBE

sql
CREATE TABLE users (id INT, email TEXT, active BOOLEAN);
DESCRIBE users;

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

Showing Table Status

SHOW TABLE STATUS surfaces operational details about a table, including its storage engine, how many rows it holds, and when it was created, which is useful for diagnosing performance or storage questions.

Example: Showing Table Status

sql
SHOW TABLE STATUS LIKE 'users';

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

Showing the CREATE TABLE Statement

Asking MySQL to show the exact CREATE TABLE statement used to build a table is the fastest way to recreate that same structure on another server without manually reverse-engineering it column by column.

Example: Showing the CREATE TABLE Statement

sql
CREATE TABLE users (id INT, email TEXT);
SHOW CREATE TABLE users;

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

Showing Columns and Indexes

Inspecting a table's columns and indexes together helps confirm that the right keys are in place to speed up the queries you actually run, rather than assuming indexing is correct without checking.

Example: Showing Columns and Indexes

sql
CREATE TABLE users (id INT, email TEXT);
CREATE INDEX idx_email ON users (email);
SHOW COLUMNS FROM users;
SHOW INDEX FROM users;

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
Common Mistakes
  1. Running SHOW TABLES without selecting a database, which gives No database selected.
  2. Confusing DESCRIBE (column details) with SHOW TABLE STATUS (engine, rows, size).
  3. Trusting the guessed structure instead of SHOW CREATE TABLE, which shows keys and defaults.
🔒

Chapter Quiz — Complete all 5 topics to unlock

0/5 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.