在本教學中,您將學習如何使用MySQL SHOW TABLES
命令查詢特定資料庫中的表。
要在MySQL資料庫中列出所有表,請按照下列步驟操作:
mysql
)登入到MySQL資料庫伺服器USE
語句切換到特定的資料庫。SHOW TABLES
命令。下面說明了MySQL SHOW TABLES
命令的語法:
SHOW TABLES;
以下範例說明如何列出yiibaidb
資料庫中的所有表。
步驟1 - 連線到MySQL資料庫伺服器:
C:\Users\Administrator>mysql -u root -p
步驟2 -切換到yiibaidb
資料庫:
mysql> USE yiibaidb;
Database changed
mysql>
步驟3 - 顯示yiibaidb
資料庫中的所有表:
mysql> show tables;
+--------------------+
| Tables_in_yiibaidb |
+--------------------+
| aboveavgproducts |
| article_tags |
| bigsalesorder |
| contacts |
| customerorders |
| customers |
| departments |
| employees |
| employees_audit |
| officeinfo |
| offices |
| offices_bk |
| offices_usa |
| orderdetails |
| orders |
| organization |
| payments |
| price_logs |
| productlines |
| products |
| saleperorder |
| user_change_logs |
| v_contacts |
| vps |
+--------------------+
24 rows in set
SHOW TABLES
命令可顯示表是基表還是檢視。 要在結果中包含表型別,請使用SHOW TABLES
語句,如下所示 -
SHOW FULL TABLES;
執行上面語句,如下所示 -
mysql> SHOW FULL TABLES;
+--------------------+------------+
| Tables_in_yiibaidb | Table_type |
+--------------------+------------+
| aboveavgproducts | VIEW |
| article_tags | BASE TABLE |
| bigsalesorder | VIEW |
| contacts | BASE TABLE |
| customerorders | VIEW |
| customers | BASE TABLE |
| departments | BASE TABLE |
| employees | BASE TABLE |
| employees_audit | BASE TABLE |
| officeinfo | VIEW |
| offices | BASE TABLE |
| offices_bk | BASE TABLE |
| offices_usa | BASE TABLE |
| orderdetails | BASE TABLE |
| orders | BASE TABLE |
| organization | VIEW |
| payments | BASE TABLE |
| price_logs | BASE TABLE |
| productlines | BASE TABLE |
| products | BASE TABLE |
| saleperorder | VIEW |
| user_change_logs | BASE TABLE |
| v_contacts | VIEW |
| vps | VIEW |
+--------------------+------------+
24 rows in set
我們在yiibaidb
資料庫中建立一個名為view_contacts
的檢視,其中包括來自employees
和customers
表的名字,姓氏和電話。
CREATE VIEW view_contacts
AS
SELECT lastName, firstName, extension as phone
FROM employees
UNION
SELECT contactFirstName, contactLastName, phone
FROM customers;
現在,執行查詢SHOW FULL TABLES
命令:
mysql> SHOW FULL TABLES;
+--------------------+------------+
| Tables_in_yiibaidb | Table_type |
+--------------------+------------+
| aboveavgproducts | VIEW |
| article_tags | BASE TABLE |
| bigsalesorder | VIEW |
| contacts | BASE TABLE |
| customerorders | VIEW |
| customers | BASE TABLE |
| departments | BASE TABLE |
| employees | BASE TABLE |
| employees_audit | BASE TABLE |
| officeinfo | VIEW |
| offices | BASE TABLE |
| offices_bk | BASE TABLE |
| offices_usa | BASE TABLE |
| orderdetails | BASE TABLE |
| orders | BASE TABLE |
| organization | VIEW |
| payments | BASE TABLE |
| price_logs | BASE TABLE |
| productlines | BASE TABLE |
| products | BASE TABLE |
| saleperorder | VIEW |
| user_change_logs | BASE TABLE |
| v_contacts | VIEW |
| view_contacts | VIEW |
| vps | VIEW |
+--------------------+------------+
25 rows in set
您可以看到,v_contacts
,view_contacts
,vps
等是檢視(VIEW),而其它表則都是基表(BASE TABLE)。
對於具有很多表的資料庫,一次顯示所有表可能不免直觀。
幸運的是,SHOW TABLES
命令提供了一個選項,允許使用LIKE運算子或WHERE子句中的表示式對返回的表進行過濾,如下所示:
SHOW TABLES LIKE pattern;
SHOW TABLES WHERE expression;
例如,要顯示yiibaidb
資料庫中以字母p
開頭的所有表,請使用以下語句:
mysql> SHOW TABLES LIKE 'p%';
+-------------------------+
| Tables_in_yiibaidb (p%) |
+-------------------------+
| payments |
| price_logs |
| productlines |
| products |
+-------------------------+
4 rows in set
或者顯示以’es
‘字串結尾的表,可使用以下語句:
mysql> SHOW TABLES LIKE '%es';
+--------------------------+
| Tables_in_yiibaidb (%es) |
+--------------------------+
| employees |
| offices |
| productlines |
+--------------------------+
3 rows in set
以下語句說明了如何在SHOW TABLES
語句中使用WHERE
子句列出yiibai
資料庫中的所有檢視 -
mysql> SHOW FULL TABLES WHERE table_type = 'VIEW';
+--------------------+------------+
| Tables_in_yiibaidb | Table_type |
+--------------------+------------+
| aboveavgproducts | VIEW |
| bigsalesorder | VIEW |
| customerorders | VIEW |
| officeinfo | VIEW |
| organization | VIEW |
| saleperorder | VIEW |
| v_contacts | VIEW |
| view_contacts | VIEW |
| vps | VIEW |
+--------------------+------------+
9 rows in set
有時,希望看到非當前使用的資料庫中的表。可以使用SHOW TABLES
語句的FROM
子句來指定要顯示表的資料庫。
以下範例演示如何顯示以’time
‘開頭的表;
mysql> SHOW TABLES FROM mysql LIKE 'time%';
+---------------------------+
| Tables_in_mysql (time%) |
+---------------------------+
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
+---------------------------+
5 rows in set
以下語句相當於上面的語句,但它使用IN
而不是FROM
子句,如下所示 -
mysql> SHOW TABLES IN mysql LIKE 'time%';
+---------------------------+
| Tables_in_mysql (time%) |
+---------------------------+
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
+---------------------------+
5 rows in set
請注意,如果您沒有基表或檢視的許可權,則它不會顯示在SHOW TABLES
命令的結果集中。
在本教學中,您已經學習了如何使用MySQL SHOW TABLES
語句列出指定資料庫中的所有表。