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