How to retrieve table names in a mysql database with Python and MySQLdb?

Richard picture Richard · Aug 24, 2010 · Viewed 50.4k times · Source

I have an SQL database and am wondering what command you use to just get a list of the table names within that database.

Answer

Remi picture Remi · Dec 3, 2011

To be a bit more complete:

import MySQLdb

connection = MySQLdb.connect(
                host = 'localhost',
                user = 'myself',
                passwd = 'mysecret')  # create the connection

cursor = connection.cursor()     # get the cursor


cursor.execute("USE mydatabase") # select the database

cursor.execute("SHOW TABLES")    # execute 'SHOW TABLES' (but data is not returned)

now there are two options:

tables = cursor.fetchall()       # return data from last query

or iterate over the cursor:

 for (table_name,) in cursor:
        print(table_name)