>  기사  >  데이터 베이스  >  mysql에서 데이터베이스에 얼마나 많은 테이블이 있는지 쿼리하는 방법

mysql에서 데이터베이스에 얼마나 많은 테이블이 있는지 쿼리하는 방법

青灯夜游
青灯夜游원래의
2021-12-02 11:13:5628302검색

데이터베이스에 있는 테이블 수를 쿼리하는 Mysql 방법: 1. MySQL 클라이언트를 사용하여 MySQL 데이터베이스 서버에 로그인합니다. 2. "USE 데이터베이스 이름" 문을 사용하여 지정된 데이터베이스로 전환합니다. SHOW TABLES;" 명령문을 나열합니다. 데이터베이스의 모든 테이블을 지정하기만 하면 됩니다.

mysql에서 데이터베이스에 얼마나 많은 테이블이 있는지 쿼리하는 방법

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

mysql에서는 SHOW TABLES 문을 사용하여 데이터베이스에 테이블이 몇 개 있는지 쿼리할 수 있습니다. 이 문은 데이터베이스의 모든 테이블을 나열할 수 있습니다. SHOW TABLES语句来查询数据库有多少表,该语句可以列出数据库的所有表。

要在MySQL数据库中列出所有表,请按照下列步骤操作:

  • 使用MySQL客户端(如mysql)登录到MySQL数据库服务器

  • 使用 USE 数据库名 语句切换到特定的数据库。

  • 使用SHOW TABLES命令。

下面说明了MySQL SHOW TABLES命令的语法:

SHOW TABLES;

MySQL 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的视图,其中包括来自employeescustomers表的名字,姓氏和电话。

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 데이터베이스의 모든 테이블을 나열하려면 다음 단계를 따르세요.

🎜MySQL SHOW TABLES 명령의 구문은 아래에 설명되어 있습니다. 🎜rrreee

MySQL SHOW TABLES 예 h2>🎜다음 예에서는 yiibaidb 데이터베이스의 모든 테이블을 나열하는 방법을 보여줍니다. 🎜🎜1단계 - MySQL 데이터베이스 서버에 연결: 🎜rrreee 🎜2단계 - yiibaidb 데이터베이스로 전환: 🎜rrreee🎜단계 3 - yiibaidb 데이터베이스의 모든 테이블 표시: 🎜rrreee🎜 SHOW TABLES 명령은 테이블이 기본 테이블인지 뷰인지 표시할 수 있습니다. 결과에 테이블 유형을 포함시키려면 아래와 같이 SHOW TABLES 문을 사용하세요. - 🎜rrreee🎜위 문을 아래와 같이 실행하세요. -🎜rrreee🎜우리는 yiibaidb에 있습니다. code> 데이터베이스 employeescustomer 테이블의 이름, 성, 전화번호를 포함하는 view_contacts라는 뷰를 만듭니다. 🎜rrreee🎜이제 SHOW FULL TABLES 명령을 실행해 보세요. 🎜rrreee🎜v_contacts, view_contacts, vps 등은 뷰(<em>VIEW</em>)이고 다른 테이블은 기본 테이블(<em>BASE TABLE</em>)입니다. 🎜🎜테이블이 많은 데이터베이스의 경우 모든 테이블을 한 번에 표시하는 것이 직관적일 수 있습니다. 🎜🎜다행히 <code>SHOW TABLES 명령은 WHERE 절에서 LIKE 연산자 또는 표현식 쌍을 사용하여 필터를 반환할 수 있는 옵션을 제공합니다. 🎜rrreee🎜예를 들어 p 문자로 시작하는 yiibaidb 데이터베이스의 모든 테이블을 표시하려면 다음 문을 사용합니다. 🎜rrreee🎜또는 To 문자열 'es'로 끝나는 테이블을 표시하려면 다음 문을 사용하세요. 🎜rrreee🎜다음 문은 SHOW TABLES 문에서 WHERE를 사용하는 방법을 보여줍니다. code> 절은 <code>yiibai 데이터베이스의 모든 뷰를 나열합니다. -🎜rrreee🎜때때로 현재 사용 중인 데이터베이스가 아닌 다른 데이터베이스의 테이블을 보고 싶을 때가 있습니다. SHOW TABLES 문의 FROM 절을 사용하여 테이블이 표시될 데이터베이스를 지정할 수 있습니다. 🎜🎜다음 예는 'time'으로 시작하는 테이블을 표시하는 방법을 보여줍니다. 🎜rrreee🎜다음 명령문은 위 명령문과 동일하지만 IN을 사용합니다. code>FROM 절, 아래와 같이 - 🎜rrreee🎜 기본 테이블이나 뷰에 대한 권한이 없으면 SHOW TABLES의 결과 집합에 표시되지 않습니다. > 명령. 🎜🎜【관련 추천: 🎜mysql 비디오 튜토리얼🎜】🎜

위 내용은 mysql에서 데이터베이스에 얼마나 많은 테이블이 있는지 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.