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
數據倉庫與數據挖掘培訓視頻教程
From:http://tw.wingwit.com/Article/program/SQL/201311/16437.html