INFORMATION_SCHEMA和SQL系统目录 为了跟蹤所有的对象以及它们之间的关系等信息RDBMS使用了在数据库中采用的相同技术一组具有关系的表和视图SQL标准委员会引入了INFORMATION_SCHEMA视图的概念虽然在不同的RDBMS中有少量修改但所有RDBMS都实现了这一视图该模式提供了对每一个数据库对象信息的只读访问 在SQL标准中目录(CATALOG)是一组模式的集合它包含INFORMATION_SCHEMA视图和其他一些东西目录由很多表和视图组成这些表和视图提供了数据库中定义的所有其他对象和记录的全部信息模式表特权等最新的标准还包含了结构和完整性约束的信息以及对SQL数据的安全性和授权规范的信息目录的主要功能是为用户和RDBMS提供一个一致的标准化的方法以访问数据库的元数据(即关于数据库自身的数据表的定义用户定义的类型等)和一些系统信息根据SQL标准的定义不能直接更新INFORMATION_SCHEMA表和视图但是某些RDBMS(例如IBM DB)也允许直接对其进行更新 SQL标准列出了多种不同的视图用于获取关于数据库对象和使用情况的信息很多RDBMS已经实现了其中绝大多数视图并添加了一些自己特有的视图在Microsoft SQLServer(以及更高的版本)PostgreSQL(以及更高的版本)以及MySQL(以及更高的版本)中都已经实现了与SQL标准相兼容的INFORMATION_SCHEMA视图IBM DB继续使用它的SYSCAT模式提供与INFORMATION_SCHEMA视图等价的服务Oracle则使用数据字典视图 Microsoft Access并未提供数据库的元数据信息视图以便通过SQL语句进行查询但它允许通过Visual Basic for Applications(VBA)以编程方式访问元数据信息OpenOffice BASE通常作为某种RDBMS的前端它依赖于底层数据库来提供元数据信息通过将SQL请求发送给RDBMS引擎来获得这些信息(嵌入的HSQLDB支持INFORMATION_SCHEMA的一个子集) 表列出了一些视图(或它们的等价对象)可以在查询中使用这些视图 表 精选的标准INFORMATION_SCHEMA视图 (续表) 请记住INFORMATION_SCHEMA视图提供了对数据库元数据和使用信息的标准访问方式本书讨论的每一种数据库都具有这些元数据也可以通过RDBMS特有的其他方法来获取这些元数据 试一试查询INFORMATION_SCHEMA 在支持INFORMATION_SCHEMA视图的所有RDBMS中查询该视图的基本语法本质上都是相同的但对于某种RDBMS也存在一些特定于该数据库的差别例如下面这个查询在Microsoft SQL Server MySQL 和PostgreSQL 中都具有相同的语法但产生的结果则存在细微的差别假设RDBMS已经启动并运行则可以一步一步地执行下面这些操作 () 打开Microsoft SQL Server Management Studio () 提供必要的信息并单击Connect按钮连接到数据库实例 () 单击位于SQL Server Management Studio控制台左上角的New Query按钮 () 输入下面的代码 USE library SELECT * FROM INFORMATION_SCHEMATABLES 示例说明 第一个语句将数据库的上下文环境设置为LIBRARY数据库Microsoft SQL Server的INFORMATION_SCHEMATABLES视图收集了当前数据库中已创建的每一个自定义表的信息这些视图为数据库中各种对象的信息提供了一种统一的标准化的访问方式以取代RDBMS所支持的特定于该种数据库的其他私有访问机制 返回目录SQL实战新手入门 编辑推荐 Oracle索引技术 高性能MySQL 数据仓库与数据挖掘培训视频教程 |