MySQL − Show Tables



MySQL Show Tables Statement

In MySQL, we use the SHOW TABLES command to retrieve the names of tables that are present in a specific database. This command is useful in various situations, such as:

  • When we want to view names of tables present in a database to verify if a specific table exists or not.

  • When we want to display additional information about each table present in a database, we use the SHOW TABLES command with the MySQL FULL modifier.

  • Additionally, we can use the SHOW TABLES command with WILDCARDS to filter and display only the tables that match a specific pattern.

Syntax

Following is the syntax of MySQL SHOW TABLES command−

SHOW TABLES;

Before proceeding with the examples, assume that the following tables exist in two databases, testdb1 and testdb2:

Databases testdb1 testdb2
Tables employee_remarks employee_age
employee_salary students_marks
students_attendance
students_fees
students_remarks

Example

First of all, we are changing the database to testdb1 to perform the SHOW TABLES operation on it.

mysql> USE testdb1;
Database changed

Now, execute the following query to list down all the tables from testdb1 database.

SHOW TABLES;

Output

Following are the tables that are present in the testdb1 database −

Tables_in_testdb1
employee_remarks
employee_salary
students_attendance
students_fees
students_remarks

SHOW TABLES with FULL modifier

In MySQL, we use the optional FULL modifier along with the SHOW TABLES command to display a second output column that contains additional information about the tables present in a database, such as their types: BASE TABLE for a table, VIEW for a view, or SYSTEM VIEW for an INFORMATION_SCHEMA table.

Example

In the following query, we are using the FULL modifier along with the SHOW TABLES command to list the tables and their types in the testdb1 database.

SHOW FULL TABLES;

Output

Following is the output of the above query −

Tables_in_testdb1 Table_type
employee_remarks BASE TABLE
employee_salary BASE TABLE
students_attendance BASE TABLE
students_fees BASE TABLE
students_remarks BASE TABLE

SHOW TABLES in different Database

In MySQL, we can retrieve the list of tables present in another database. To do so, we need to use the IN operator or the FROM clause in conjunction with the SHOW TABLES statement.

Example

In the following query, we are fetching the list of tables that exist in another database testdb2, using the SHOW TABLES command with IN operator.

SHOW TABLES IN testdb2;

Output

Following are the names of the tables that are present in testdb2 database −

Tables_in_testdb2
employee_age
students_marks

Example

We can also perform the above operation using the SHOW TABLES command with FROM clause.

SHOW TABLES FROM testdb2;

Output

As we can observe, both outputs are the same.

Tables_in_testdb2
employee_age
students_marks

SHOW TABLES using Pattern Matching

In some scenarios where there are large amount of tables present in a database, and we want to retrieve only specific tables, we use the LIKE operator with WILDCARD characters such as '%'. These wildcards will filter and display only the tables that match a specific pattern."

Example

In the following query, we are using the LIKE operator with SHOW TABLES command to select all the tables (in testdb1 database) where the name starts with "stud".

SHOW TABLES IN testdb1 LIKE "stud%";

Output

Following are the tables present in testdb1 database whose name starts with "stud" −

Tables_in_testdb1 (stud%)
students_attendance
students_fees
students_remarks

Example

Here, we are trying to retrieve the tables from testdb2 database where the name starts with "stud" −

SHOW TABLES IN testdb2 LIKE "stud%";

Output

This will produce following result −

Tables_in_testdb2 (stud%)
students_marks

Example

We are using the SHOW TABLES along with WHERE clause to check if there is a table named "employee_remarks" in testdb1 database −

SHOW TABLES FROM testdb1 WHERE Tables_in_testdb1 = "employee_remarks";

Output

This will produce following result −

Tables_in_testdb1
employee_remarks

Showing tables Using a Client Program

Besides showing the list of tables present in a MySQL database with a MySQL query, we can also use a client program to perform the SHOW TABLES operation.

Syntax

Following are the syntaxes to Show list of tables in MySQL Database in various programming languages −

To show the list of tables in MySQL Database through a PHP program, we need to execute SHOW TABLES statement using the mysqli function query() as −

$sql = "SHOW TABLES FROM DATABASE";
$mysqli->query($sql);

To show the list of tables in MySQL Database through a Node.js program, we need to execute SHOW TABLES statement using the query() function of the mysql2 library as −

sql= "SHOW TABLES FROM DATABASE";
con.query(sql);

To show the list of tables in MySQL Database through a Java program, we need to execute SHOW TABLES statement using the JDBC function executeUpdate() as −

String sql = "SHOW TABLES FROM DATABASE";
statement.executeQuery(sql);

To show the list of tables in MySQL Database through a Java program, we need to execute SHOW TABLES statement using the execute() function of the MySQL Connector/Python as −

show_table_query = "SHOW TABLES FROM DATABASE"
cursorObj.execute(show_table_query);

Example

Following are the programs −

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

if ($mysqli->connect_errno) {
    printf("Connect failed: %s
", $mysqli->connect_error); exit(); } // printf('Connected successfully.
'); $sql = "SHOW TABLES FROM TUTORIALS"; if ($result = $mysqli->query($sql)) { printf("Show table executed successfully.
"); while ($row = mysqli_fetch_array($result)) { print_r($row); } } if ($mysqli->errno) { printf("Could not show table: %s
", $mysqli->error); } $mysqli->close();

Output

The output obtained is as follows −

Show table executed successfully.
Array
(
    [0] => articles
    [Tables_in_tutorials] => articles
)
Array
(
    [0] => courses
    [Tables_in_tutorials] => courses
)
Array
(
    [0] => customers
    [Tables_in_tutorials] => customers
)
Array
(
    [0] => customerss
    [Tables_in_tutorials] => customerss
)
Array
(
    [0] => demo_table
    [Tables_in_tutorials] => demo_table
)
Array
(
    [0] => employee
    [Tables_in_tutorials] => employee
)
Array
(
    [0] => films
    [Tables_in_tutorials] => films
)
Array
(
    [0] => films_watched
    [Tables_in_tutorials] => films_watched
)
Array
(
    [0] => myplayers
    [Tables_in_tutorials] => myplayers
)
Array
(
    [0] => new_tutorial_tbl
    [Tables_in_tutorials] => new_tutorial_tbl
)
Array
(
    [0] => orders
    [Tables_in_tutorials] => orders
)
Array
(
    [0] => persons
    [Tables_in_tutorials] => persons
)
Array
(
    [0] => products
    [Tables_in_tutorials] => products
)
Array
(
    [0] => sales
    [Tables_in_tutorials] => sales
)
Array
(
    [0] => students
    [Tables_in_tutorials] => students
)        
var mysql = require('mysql2');
var con = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "Nr5a0204@123"
});

  //Connecting to MySQL
  con.connect(function (err) {
  if (err) throw err;
  console.log("Connected!");
  console.log("--------------------------");

  sql = "CREATE DATABASE TUTORIALS;"
  con.query(sql);

  sql = "USE TUTORIALS;"
  con.query(sql);

  sql = "CREATE TABLE CUSTOMERS (ID INT NOT NULL, NAME VARCHAR(20) NOT NULL);"
  con.query(sql);

  sql = "CREATE TABLE ORDERS (OID INT NOT NULL, CUSTOMER_ID INT);"
  con.query(sql);

  sql = "SHOW TABLES;"
  con.query(sql, function(err, result){
    if (err) throw err
    console.log(result);
  });
});               

Output

The output produced is as follows −

Connected!
--------------------------
[
  { Tables_in_tutorials: 'customers' },
  { Tables_in_tutorials: 'orders' }
]         
import java.sql.*;
public class JDBCconnection {
public static void main(String[] args){
    String url = "jdbc:mysql://localhost:3306/TUTORIALS";
    String username = "root";
    String password = "password";
    try{
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connection = DriverManager.getConnection(url, username, password);
        Statement statement = connection.createStatement();
        System.out.println("Connected successfully...!");

        //show table statement...!
        String sql = "SHOW TABLES FROM TUTORIALS";
        ResultSet resultSet = statement.executeQuery(sql);
        System.out.println("Tables in the current database: ");
        while(resultSet.next()) {
            System.out.print(resultSet.getString(1));
            System.out.println();
        }
        connection.close();
    }
    catch(Exception e){
        System.out.println(e);
    }
}
}                              

Output

The output obtained is as shown below −

Connected successfully...!
Tables in the current database: 
articles
blackpink
blog
courses
customer
customers
data   
import mysql.connector
#establishing the connection
connection = mysql.connector.connect(
    host='localhost',
    user='root',
    password='password',
    database='tut'
)
#Creating a cursor object 
cursorObj = connection.cursor()
cursorObj.execute("SHOW TABLES")
tables = cursorObj.fetchall()
print("Tables in the database are:")
for table in tables:
    print(table[0])
cursorObj.close()
connection.close()                                         

Output

Following is the output of the above code −

Tables in the database are:
books
novel
novels
tutorials_tbl
Advertisements