MySQL列出所有資料庫

2019-10-16 22:55:49

在本教學中,您將學習如何使用MySQL SHOW DATABASES命令列出MySQL資料庫伺服器中的所有資料庫。

使用MySQL SHOW DATABASES

要列出MySQL伺服器主機上的所有資料庫,請使用SHOW DATABASES命令,如下所示:

SHOW DATABASES;

例如,要列出本地MySQL資料庫伺服器中的所有資料庫,請首先登入到資料庫伺服器,如下所示:

C:\Users\Administrator>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.9 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

然後使用SHOW DATABASES命令:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| crmdb              |
| mysql              |
| newdb              |
| performance_schema |
| testdb             |
| yiibaidb           |
| yiibaidb_backup    |
+--------------------+
8 rows in set

SHOW SCHEMAS命令是SHOW DATABASES的同義詞,因此以下命令將返回與上述相同的結果:

mysql> SHOW SCHEMAS;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| crmdb              |
| mysql              |
| newdb              |
| performance_schema |
| testdb             |
| yiibaidb           |
| yiibaidb_backup    |
+--------------------+
8 rows in set

如果要查詢與特定模式匹配的資料庫,請使用LIKE子句,如下所示:

SHOW DATABASES LIKE pattern;

例如,以下語句返回以字串「schema」結尾的資料庫;

mysql> SHOW DATABASES LIKE '%schema';
+--------------------+
| Database (%schema) |
+--------------------+
| information_schema |
| performance_schema |
+--------------------+
2 rows in set

重要的是要注意,如果MySQL資料庫伺服器以-skip-show-database啟動,則除非具有SHOW DATABASES許可權,否則不能使用SHOW DATABASES語句。

從information_schema查詢資料庫資料

如果LIKE子句中的條件不足,可以直接從information_schema資料庫中的schemata表查詢資料庫資訊。

例如,以下查詢返回與SHOW DATABASES命令相同的結果。

SELECT schema_name 
FROM information_schema.schemata;

以下SELECT語句返回名稱以’schema‘或’db‘結尾的資料庫。

SELECT schema_name
FROM information_schema.schemata
WHERE schema_name LIKE '%schema' OR 
      schema_name LIKE '%db';

它返回以下結果集:

mysql> SELECT schema_name
FROM information_schema.schemata
WHERE schema_name LIKE '%schema' OR 
      schema_name LIKE '%db';
+--------------------+
| schema_name        |
+--------------------+
| information_schema |
| crmdb              |
| newdb              |
| performance_schema |
| testdb             |
| yiibaidb           |
+--------------------+
6 rows in set

在本教學中,您已經學習了如何使用SHOW DATABASES命令顯示MySQL伺服器中的所有資料庫,或者從information_schema資料庫中的schemata表進行查詢。