MySQL数据库
完成条件
INFORMATION_SCHEMA
INFORMATION_SCHEMA
是从 MySQL 5 开始提供的一个虚拟数据库,包含有关服务器和数据库的元数据(即数据关于数据的描述)。
- 不可修改:您无法修改
INFORMATION_SCHEMA
的结构或数据,只能查询其表中的信息。 - 灵活性:尽管使用
SHOW
语句更快捷,但INFORMATION_SCHEMA
提供了一种更灵活的方式来获取和组织元数据。
1. 数据库信息
列出所有数据库
以下命令用于列出当前服务器上的数据库:
SHOW DATABASES;
SCHEMA
是DATABASES
的同义词,为了与其他数据库管理系统(DBMS)兼容。
按名称过滤数据库
通过 LIKE
运算符列出符合特定模式的数据库,例如列出名称以 my
开头的数据库:
SHOW DATABASES LIKE 'my%';
使用更复杂的条件
通过 WHERE
子句添加更复杂的过滤条件,例如:
SHOW DATABASES WHERE conditions;
2. 表和视图信息
列出所有表
使用以下命令列出指定数据库中的表:
USE `database`;
SHOW TABLES;
或者:
SHOW TABLES FROM `database`;
按名称过滤表
通过 LIKE
运算符过滤表名,例如:
SHOW TABLES LIKE 'pattern';
获取更多信息
使用 FULL
关键字查看表的类型信息:
SHOW FULL TABLES;
Table_type
列的值:'BASE TABLE'
:普通表。'VIEW'
:视图。'SYSTEM VIEW'
:系统表(如INFORMATION_SCHEMA
表)。
列出视图:
SHOW FULL TABLES WHERE `Table_type` = 'VIEW';
列出普通表:
SHOW FULL TABLES WHERE `Table_type` = 'BASE TABLE';
3. 字段(列)信息
列出表的字段
获取表或视图中字段的详细信息:
DESCRIBE `table`;
或者:
SHOW COLUMNS FROM `table`;
支持过滤条件:
- 使用
LIKE
过滤字段名称:SHOW COLUMNS FROM `table` LIKE 'pattern';
- 使用
WHERE
添加复杂条件:SHOW COLUMNS FROM `table` WHERE condition;
获取附加信息
使用 FULL
关键字获取更多字段信息,例如字段的排序规则(collation)、权限和注释:
SHOW FULL COLUMNS FROM `table`;
4. 索引信息
列出表的索引
查询表中所有索引的信息:
SHOW INDEX FROM `table`;
或者:
SHOW INDEX FROM `table` FROM `database`;
INDEX
的同义词是KEYS
。
结果示例
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Index_type
Table1 0 PRIMARY 1 id A 19 BTREE
删除索引
删除一个索引,例如:
DROP INDEX `date_2` ON `Table1`;
5. 视图信息
INFORMATION_SCHEMA.VIEWS
表提供关于视图的元数据。SHOW FULL
TABLES
只能提供视图的基本信息。如果需要详细信息,建议查询 VIEWS
表。
6. 其他补充
打开的表
列出所有非临时表(不包括视图)并检查其是否在缓存中打开:
SHOW OPEN TABLES;
注意事项
- 使用 phpMyAdmin,可以更轻松地通过图形界面查看和管理这些信息。
- 避免重复创建索引,因为这会降低性能。
通过以上命令,您可以全面管理 MySQL 数据库中的元数据和结构信息。
最后修改: 2025年01月17日 星期五 19:22