How to do it...

  1. Create a MySQL object:
mysql_init(NULL);
  1. Establish a connection to the MySQL server running at the specified host. Also, connect to the desired database:
mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)
  1. Create an execute SQL statement, comprised of show tables:
mysql_query(conn, "show tables")
  1. Save the result of the executing SQL query (that is, the table information of the mysql database) into a resultset:
res = mysql_use_result(conn);
  1. Fetch one row at a time from the resultset in a while loop and display only the table name from that row:
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s \n", row[0]);
  1. Free up the memory that is allocated to the resultset:
mysql_free_result(res);
  1. Close the opened connection handler:
mysql_close(conn);

The mysql1.c program for displaying all the tables in the built-in mysql database is as follows:

#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>

void main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "127.0.0.1";
char *user = "root";
char *password = "Bintu2018$";
char *database = "mysql";
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
if (mysql_query(conn, "show tables")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s \n", row[0]);
mysql_free_result(res);
mysql_close(conn);
}

Now, let's go behind the scenes to understand the code better.