温馨提示×

MySQL信息Schema查询语句怎么写

小樊
81
2024-10-12 04:32:53
栏目: 云计算

在MySQL中,可以使用INFORMATION_SCHEMA这个特殊的数据库来查询数据库元数据。INFORMATION_SCHEMA提供了关于数据库对象(如表、列、索引等)的详细信息。

以下是一些常用的INFORMATION_SCHEMA表及其查询示例:

  1. SCHEMATA - 包含当前MySQL服务器中所有数据库的信息。
SELECT SCHEMA_NAME AS 'Database Name', DEFAULT_CHARACTER_SET_NAME AS 'Default Charset', DEFAULT_COLLATION_NAME AS 'Default Collation' FROM INFORMATION_SCHEMA.SCHEMATA;
  1. TABLES - 包含关于数据库中所有表的信息。你可以指定数据库名来过滤结果。
SELECT TABLE_SCHEMA AS 'Database Name', TABLE_NAME, TABLE_TYPE, ENGINE, TABLE_ROWS, AVG_ROW_SIZE, DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT, CREATE_TIME, UPDATE_TIME, CHECK_TIME, Collation_NAME, Checksum, Create_Options, Table_Comment FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your_database_name';
  1. COLUMNS - 包含关于表中所有列的信息。同样,你可以指定数据库名和表名来过滤结果。
SELECT TABLE_SCHEMA AS 'Database Name', TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA, PRIVILEGES, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name';
  1. STATISTICS - 包含关于表索引的统计信息。
SELECT TABLE_SCHEMA AS 'Database Name', TABLE_NAME, INDEX_NAME, COLUMN_NAME, ORDINAL_POSITION, COLUMN_POSITION, CARDINALITY, SUB_PART, PACKED, NULLABLE, INDEX_TYPE, COMMENT FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name';

注意:在实际使用时,需要将your_database_nameyour_table_name替换为实际的数据库名和表名。

这些查询只是INFORMATION_SCHEMA提供的众多功能中的一部分。你可以根据自己的需求组合这些查询来获取所需的信息。

0