INFORMATION_SCHEMA 是什么
INFORMATION_SCHEMA 是一种特殊的数据库,它在 SQL 标准中定义并存在于许多类型的数据库中,用于存储数据库的元数据,包括数据库、表、列、约束、权限等的信息。
具有 INFORMATION_SCHEMA 的数据库系统包括但不限于以下:
-
MySQL:MySQL的
INFORMATION_SCHEMA包含多个只读视图,用于获取关于数据库对象和服务器实例的元数据。这些视图包括TABLES、COLUMNS、STATISTICS、SCHEMATA、USER_PRIVILEGES等。 -
PostgreSQL:PostgreSQL的
INFORMATION_SCHEMA提供与 MySQL 类似的功能,但具体的视图可能会有所不同。 -
SQL Server:SQL Server 的
INFORMATION_SCHEMA视图包含有关数据库元数据的信息,如TABLES、COLUMNS、ROUTINES、VIEWS、TABLE_CONSTRAINTS等。 -
MariaDB:MariaDB的
INFORMATION_SCHEMA与 MySQL 的非常相似,提供大量的视图用于查询数据库元数据。 -
Oracle:在 Oracle 中,类似于
INFORMATION_SCHEMA的元数据信息存储在一系列名为ALL_,USER_和DBA_的视图中。
注意:
尽管
INFORMATION_SCHEMA在不同的数据库系统中都存在,但提供的具体视图和详细信息可能会有所不同。尽管
INFORMATION_SCHEMA对于数据库元数据的访问非常有用,但是在大型数据库中频繁访问INFORMATION_SCHEMA可能会影响性能,因为生成这些信息可能需要消耗大量资源。
INFORMATION_SCHEMA 的一些主要特性:
-
标准兼容:
INFORMATION_SCHEMA数据库在许多数据库系统中都存在,因为它是 SQL-92 标准的一部分。这意味着不论使用哪种数据库系统,可以用相同的方式查询元数据。 -
只读:
INFORMATION_SCHEMA中的表是只读的,不能进行插入、删除或更新操作。元数据的更改必须通过执行其他操作(例如,创建新的数据库、更改表结构等)来完成,然后这些更改会自动反映在INFORMATION_SCHEMA中。 -
动态数据:
INFORMATION_SCHEMA表中的数据是动态生成的。这意味着,每次查询时,MySQL 会返回表中最新的数据。
INFORMATION_SCHEMA 包含许多表,一些常用的包括:
| 表名 | 表功能描述及字段含义 |
|---|---|
SCHEMATA |
包含所有数据库的列表以及有关这些数据库的信息,如默认字符集、默认排序规则等
|
TABLES |
包含所有数据库中的表信息,如表名、表类型(如 BASE TABLE, VIEW 等)、存储引擎、创建时间、更新时间等
|



INFORMATION_SCHEMA是一个特殊数据库,存储SQL标准中的数据库元数据,如表、列、约束和权限信息。它存在于MySQL、PostgreSQL、SQLServer、MariaDB和Oracle等系统中,提供只读视图以查询元数据。虽然结构相似,但不同数据库系统的具体视图可能有差异。频繁查询可能影响性能,主要用于获取数据库对象的详细信息。
1855

被折叠的 条评论
为什么被折叠?



