MySQL信息Schema查询语句怎么写

avatar
作者
筋斗云
阅读量:0

在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提供的众多功能中的一部分。你可以根据自己的需求组合这些查询来获取所需的信息。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!