INFORMATION

INFORMATION
最新回答
理想三旬

2026-02-22 11:15:34

   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_SCHEMA TABLES

   示例说明

  第一个语句将数据库的上下文环境设置为LIBRARY数据库 Microsoft SQL Server的INFORMATION_SCHEMA TABLES视图收集了当前数据库中已创建的每一个自定义表的信息 这些视图为数据库中各种对象的信息提供了一种统一的 标准化的访问方式 以取代RDBMS所支持的特定于该种数据库的其他私有访问机制

       返回目录 SQL实战新手入门

       编辑推荐

       Oracle索引技术

       高性能MySQL

lishixinzhi/Article/program/SQL/201311/16437