<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 第23章:INFORMATION_SCHEMA信息數據庫 ** 目錄** [23.1. INFORMATION_SCHEMA表](#)[ 23.1.1. INFORMATION_SCHEMA SCHEMATA表](#)[ 23.1.2. INFORMATION_SCHEMA TABLES表](#)[ 23.1.3. INFORMATION_SCHEMA COLUMNS表](#)[ 23.1.4. INFORMATION_SCHEMA STATISTICS表](#)[ 23.1.5. INFORMATION_SCHEMA USER_PRIVILEGES表](#)[ 23.1.6. INFORMATION_SCHEMA SCHEMA_PRIVILEGES表](#)[ 23.1.7. INFORMATION_SCHEMA TABLE_PRIVILEGES表](#)[ 23.1.8. INFORMATION_SCHEMA COLUMN_PRIVILEGES表](#)[ 23.1.9. INFORMATION_SCHEMA CHARACTER_SETS表](#)[ 23.1.10. INFORMATION_SCHEMA COLLATIONS表](#)[ 23.1.11. INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY表](#)[ 23.1.12. INFORMATION_SCHEMA TABLE_CONSTRAINTS表](#)[ 23.1.13. INFORMATION_SCHEMA KEY_COLUMN_USAGE表](#)[ 23.1.14. INFORMATION_SCHEMA ROUTINES表](#)[ 23.1.15. INFORMATION_SCHEMA VIEWS表](#)[ 23.1.16. INFORMATION_SCHEMA TRIGGERS表](#)[ 23.1.17. 其他INFORMATION_SCHEMA表](#)[ 23.2. SHOW語句的擴展``](#) INFORMATION_SCHEMA提供了訪問數據庫元數據的方式。 元數據是關于數據的數據,如數據庫名或表名,列的數據類型,或訪問權限等。有些時候用于表述該信息的其他術語包括“數據詞典”和“系統目錄”。 例如: ~~~ mysql> SELECT table_name, table_type, engine ~~~ ~~~ -> FROM information_schema.tables ~~~ ~~~ -> WHERE table_schema = 'db5' ~~~ ~~~ -> ORDER BY table_name DESC; ~~~ <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"><tr><td valign="top"> <pre>?table_name(表名)</pre> </td> <td valign="top"> <pre>?table_type(表類型)</pre> </td> <td valign="top"> <pre>?引擎</pre> </td> </tr><tr><td valign="top"> <pre>?v56? </pre> </td> <td valign="top"> <pre>?VIEW(視圖)</pre> </td> <td valign="top"> <pre>?NULL</pre> </td> </tr><tr><td valign="top"> <pre>?v3</pre> </td> <td valign="top"> <p><span>VIEW</span>(視圖)</p></td> <td valign="top"> <pre>?NULL</pre> </td> </tr><tr><td valign="top"> <pre>?v2</pre> </td> <td valign="top"> <p><span>VIEW</span>(視圖)</p></td> <td valign="top"> <pre>?NULL</pre> </td> </tr><tr><td valign="top"> <pre>?v</pre> </td> <td valign="top"> <p><span>VIEW</span>(視圖)</p></td> <td valign="top"> <pre>?NULL</pre> </td> </tr><tr><td valign="top"> <pre>?tables </pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?MyISAM </pre> </td> </tr><tr><td valign="top"> <pre>?t7</pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?MyISAM </pre> </td> </tr><tr><td valign="top"> <pre>?t3</pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?MyISAM </pre> </td> </tr><tr><td valign="top"> <pre>?t2</pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?MyISAM </pre> </td> </tr><tr><td valign="top"> <pre>?t</pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?MyISAM </pre> </td> </tr><tr><td valign="top"> <pre>?pk</pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?InnoDB </pre> </td> </tr><tr><td valign="top"> <pre>?loop </pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?MyISAM </pre> </td> </tr><tr><td valign="top"> <pre>?kurs </pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?MyISAM </pre> </td> </tr><tr><td valign="top"> <pre>?k</pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?MyISAM </pre> </td> </tr><tr><td valign="top"> <pre>?into </pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?MyISAM </pre> </td> </tr><tr><td valign="top"> <pre>?goto </pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?MyISAM </pre> </td> </tr><tr><td valign="top"> <pre>?fk2? </pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?InnoDB </pre> </td> </tr><tr><td valign="top"> <pre>?fk</pre> </td> <td valign="top"> <pre>?BASE TABLE(基本表)</pre> </td> <td valign="top"> <pre>?InnoDB </pre> </td> </tr></table> ~~~ 集合中含17行(0.01秒)。 ~~~ 解釋:該語句請求按逆向字母順序列出數據庫db5中的所有表,但僅顯示三種信息:表名,表類型,以及表引擎。 INFORMATION_SCHEMA是信息數據庫,其中保存著關于MySQL服務器所維護的所有其他數據庫的信息。在INFORMATION_SCHEMA中,有數個只讀表。它們實際上是視圖,而不是基本表,因此,你將無法看到與之相關的任何文件。 每位MySQL用戶均有權訪問這些表,但僅限于表中的特定行,在這類行中含有用戶具有恰當訪問權限的對象。 **SELECT****的優點** SELECT ... FROM INFORMATION_SCHEMA語句的目的在于提供一種更為一致的方式,以訪問MySQL所支持的各種SHOW語句(SHOW DATABASES、SHOW TABLES等等)提供的信息。與SHOW相比,使用SELECT有多項優點“ ·???????? 符合Codd規則。也就是說,所有訪問均是在表上進行的。 ·???????? 不需要了解新語句的語法。由于他們已知道SELECT的工作方式,僅需了解對象名即可。 ·???????? 實現人無需操心增加關鍵詞方面的事宜。 ·???????? 有數百萬種可能的輸出變化,而不是一種。這樣,就為對元數據有不同需求的應用程序提供了更高的靈活性。 ·???????? 由于其他DBMS也采用了這類方式,移植更為容易。 [然而,由于SHOW在MySQL的雇員和用戶中十分流行,如果SHOW消失,可能會導致混亂,因此傳統的語法方式無法給出消除SHOW的足夠理由。事實上,在MySQL 5.1中,還對SHOW進行了多項增強。關于這方面的介紹,請參見]()[23.2節,“SHOW語句的擴展``”](# "23.2.?Extensions to SHOW Statements")。 **標準** 在MySQL中,INFORMATION_SCHEMA表結構的實施遵從“ANSI/ISO SQL:2003標準,第11部分*綱要*”。我們的目的在于,獲得與SQL:2003核心特性F021“基本信息方案”的近似兼容。 SQL服務器2000(也遵從該標準)的用戶可能已注意到它們高度的相似性。但是,MySQL略去了與我們的實施方式不相關的眾多列,并添加了一些MySQL特有的列。其中一種列就是INFORMATION_SCHEMA.TABLES表中的引擎列。 盡管其他DBMS使用了不同的名稱,如syscat或系統,但標準名稱是INFORMATION_SCHEMA。 事實上,盡管不需要生成名為INFORMATION_SCHEMA的文件,我們仍提供了名為INFORMATION_SCHEMA的新數據庫。可以使用USE語句將INFORMATION_SCHEMA選擇為默認數據庫,但訪問該數據庫中所含表的唯一方式是使用SELECT語句。不能在其中插入內容,不能更新它們,也不能刪除其中的內容。 **權限** 當前權限(SHOW)要求和SELCET權限要求不存在差別。在任何一種情況下,要想查看關于它的信息,需要對某類對象擁有特定權限。 ### 23.1.?INFORMATION_SCHEMA表 [ 23.1.1. INFORMATION_SCHEMA SCHEMATA表](#)[ 23.1.2. INFORMATION_SCHEMA TABLES表](#)[ 23.1.3. INFORMATION_SCHEMA COLUMNS表](#)[ 23.1.4. INFORMATION_SCHEMA STATISTICS表](#)[ 23.1.5. INFORMATION_SCHEMA USER_PRIVILEGES表](#)[ 23.1.6. INFORMATION_SCHEMA SCHEMA_PRIVILEGES表](#)[ 23.1.7. INFORMATION_SCHEMA TABLE_PRIVILEGES表](#)[ 23.1.8. INFORMATION_SCHEMA COLUMN_PRIVILEGES表](#)[ 23.1.9. INFORMATION_SCHEMA CHARACTER_SETS表](#)[ 23.1.10. INFORMATION_SCHEMA COLLATIONS表](#)[ 23.1.11. INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY表](#)[ 23.1.12. INFORMATION_SCHEMA TABLE_CONSTRAINTS表](#)[ 23.1.13. INFORMATION_SCHEMA KEY_COLUMN_USAGE表](#)[ 23.1.14. INFORMATION_SCHEMA ROUTINES表](#)[ 23.1.15. INFORMATION_SCHEMA VIEWS表](#)[ 23.1.16. INFORMATION_SCHEMA TRIGGERS表](#)[ 23.1.17. 其他INFORMATION_SCHEMA表](#) **下述章節說明** 在下面的章節中,我們選擇了INFORMATION_SCHEMA中的表和列。對于每一列,有三類信息: ·???????? “標準名稱”:指明了列的標準SQL名稱。 ·???????? “SHOW名稱”:指明了最近SHOW語句中的等效字段名,如果有的話。 ·???????? “注釋”給出了適用的附加信息。 為了避免使用標準或DB2、SQL服務器或Oracle中保留的名稱,我們更改了標注為“SQL擴展”的列名。(例如,在TABLES表中,我們將COLLATION改為TABLE_COLLATION)。請參見本文末尾處給出的保留字列表。[http://www.dbazine.com/gulutzan5.shtml](http://www.dbazine.com/gulutzan5.shtml)。 字符列(例如TABLES.TABLE_NAME)定義通常是VARCHAR(*N*) CHARACTER SET utf8,其中,N至少為64。 在每一部分中,指明了等效于從INFORMATION_SCHEMA中檢索信息的SELECT語句的SHOW語句,或者不存在這類語句。 **注釋:**目前,有一些丟失的列和一些混亂的列。我們正在著手解決該問題,并隨著變化情況更新文檔。 ### 23.1.1.?INFORMATION_SCHEMA SCHEMATA表 該方案是數據庫,因此SCHEMATA表提供了關于數據庫的信息。 <table border="1" cellpadding="0" id="table2"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><b>注釋</b></p></td> </tr><tr><td> <p> <span>CATALOG_NAME</span></p></td> <td> <p><span>-</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>SCHEMA_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>Database</span></p></td> </tr><tr><td> <p> <span>DEFAULT_CHARACTER_SET_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>DEFAULT_COLLATION_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>SQL_PATH</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr></table> **注釋:**SQL_PATH列的之總為NULL。 下述語句是等效的: ~~~ SELECT SCHEMA_NAME AS `Database ~~~ ~~~ FROM INFORMATION_SCHEMA.SCHEMATA ~~~ ~~~ [WHERE SCHEMA_NAME LIKE 'wild'] ~~~ ~~~ ? ~~~ ~~~ SHOW DATABASES ~~~ ~~~ [LIKE 'wild'] ~~~ ### 23.1.2.?INFORMATION_SCHEMA TABLES表 TABLES表給出了關于數據庫中的表的信息。 <table border="1" cellpadding="0" id="table3"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>TABLE_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>TABLE_SCHEMA</span></p></td> <td> <p> <span>Table_</span><span>...</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_NAME</span></p></td> <td> <p> <span>Table_</span><span>...</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_TYPE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>ENGINE</span></p></td> <td> <p> <span>Engine</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>VERSION</span></p></td> <td> <p> <span>Version</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>ROW_FORMAT</span></p></td> <td> <p> <span>Row_format</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>TABLE_ROWS</span></p></td> <td> <p> <span>Rows</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>AVG_ROW_LENGTH</span></p></td> <td> <p> <span>Avg_row_length</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>DATA_LENGTH</span></p></td> <td> <p> <span>Data_length</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>MAX_DATA_LENGTH</span></p></td> <td> <p> <span>Max_data_length</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>INDEX_LENGTH</span></p></td> <td> <p> <span>Index_length</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>DATA_FREE</span></p></td> <td> <p> <span>Data_free</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>AUTO_INCREMENT</span></p></td> <td> <p> <span>Auto_increment</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>CREATE_TIME</span></p></td> <td> <p> <span>Create_time</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>UPDATE_TIME</span></p></td> <td> <p> <span>Update_time</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>CHECK_TIME</span></p></td> <td> <p> <span>Check_time</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>TABLE_COLLATION</span></p></td> <td> <p> <span>Collation</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>CHECKSUM</span></p></td> <td> <p> <span>Checksum</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>CREATE_OPTIONS</span></p></td> <td> <p> <span>Create_options</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>TABLE_COMMENT</span></p></td> <td> <p> <span>Comment</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr></table> 注釋: ·???????? TABLE_SCHEMA和TABLE_NAME是SHOW顯示中的單個字段,例如Table_in_db1。 ·???????? TABLE_TYPE(表類型)應是BASE TABLE(基本表)或VIEW(視圖)。如果表是臨時性的,TABLE_TYPE = TEMPORARY。(沒有臨時視圖,因此,因此不存在歧義)。 ·???????? 如果表位于INFORMATION_SCHEMA數據庫中,TABLE_ROWS列為NULL。對于InnoDB表,在SQL優化中,行計數僅是大概估計值。 ·???????? 沒有關于表默認字符集的任何信息。TABLE_COLLATION處于關閉狀態,原因在于校對名稱以字符集名稱開頭。 下述語句是等效的: ~~~ SELECT table_name FROM INFORMATION_SCHEMA.TABLES ~~~ ~~~ ? [WHERE table_schema = 'db_name'] ~~~ ~~~ ? [WHERE|AND table_name LIKE 'wild'] ~~~ ~~~ ? ~~~ ~~~ SHOW TABLES ~~~ ~~~ ? [FROM db_name] ~~~ ~~~ ? [LIKE 'wild'] ~~~ ### 23.1.3.?INFORMATION_SCHEMA COLUMNS表 COLUMNS表給出了表中的列信息。 <table border="1" cellpadding="0" id="table4"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>TABLE_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>TABLE_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>COLUMN_NAME</span></p></td> <td> <p> <span>Field</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>ORDINAL_POSITION</span></p></td> <td> <p><span>?</span></p></td> <td> <p>參見注釋</p></td> </tr><tr><td> <p> <span>COLUMN_DEFAULT</span></p></td> <td> <p> <span>Default</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>IS_NULLABLE</span></p></td> <td> <p> <span>Null</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>DATA_TYPE</span></p></td> <td> <p> <span>Type</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>CHARACTER_MAXIMUM_LENGTH</span></p></td> <td> <p> <span>Type</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>CHARACTER_OCTET_LENGTH</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>NUMERIC_PRECISION</span></p></td> <td> <p> <span>Type</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>NUMERIC_SCALE</span></p></td> <td> <p> <span>Type</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>CHARACTER_SET_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>COLLATION_NAME</span></p></td> <td> <p> <span>Collation</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>COLUMN_TYPE</span></p></td> <td> <p> <span>Type</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>COLUMN_KEY</span></p></td> <td> <p> <span>Key</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>EXTRA</span></p></td> <td> <p> <span>Extra</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr><tr><td> <p> <span>COLUMN_COMMENT</span></p></td> <td> <p> <span>Comment</span></p></td> <td> <p><span>MySQL擴展</span></p></td> </tr></table> 注釋: ·???????? 在SHOW中,類型顯示包括來自數個不同COLUMNS列的值。 ·???????? ORDINAL_POSITION有必要,這是因為,你可能會在某一天需要ORDER BY ORDINAL_POSITION(按ORDINAL_POSITION排序)。不同于SHOW,SELECT沒有自動排序功能。 ·???????? CHARACTER_OCTET_LENGTH應與CHARACTER_MAXIMUM_LENGTH相同,但多字節字符集除外。 ·???????? CHARACTER_SET_NAME可由Collation(校對)導出。例如,如果給出了“SHOW FULL COLUMNS FROM t”,在Collation(校對)列中將見到latin1_swedish_ci的值,字符集由第1個下劃線前的名稱指明。latin1. 下述語句是等效的: ~~~ SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT ~~~ ~~~ ? FROM INFORMATION_SCHEMA.COLUMNS ~~~ ~~~ ? WHERE table_name = 'tbl_name' ~~~ ~~~ ?[AND table_schema = 'db_name'] ~~~ ~~~ ?[AND column_name LIKE 'wild'] ~~~ ~~~ ? ~~~ ~~~ SHOW COLUMNS ~~~ ~~~ ?FROM tbl_name ~~~ ~~~ ? [FROM db_name] ~~~ ~~~ ? [LIKE wild] ~~~ ### 23.1.4.?INFORMATION_SCHEMA STATISTICS表 STATISTICS表給出了關于表索引的信息。 <table border="1" cellpadding="0" id="table5"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>TABLE_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>TABLE_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p>=數據庫</p></td> </tr><tr><td> <p> <span>TABLE_NAME</span></p></td> <td> <p> <span>Table</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>NON_UNIQUE</span></p></td> <td> <p> <span>Non_unique</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>INDEX_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p>=數據庫</p></td> </tr><tr><td> <p> <span>INDEX_NAME</span></p></td> <td> <p> <span>Key_name</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>SEQ_IN_INDEX</span></p></td> <td> <p> <span>Seq_in_index</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>COLUMN_NAME</span></p></td> <td> <p> <span>Column_name</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>COLLATION</span></p></td> <td> <p> <span>Collation</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>CARDINALITY</span></p></td> <td> <p> <span>Cardinality</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>SUB_PART</span></p></td> <td> <p> <span>Sub_part</span></p></td> <td> <p>MySQL擴展</p></td> </tr><tr><td> <p> <span>PACKED</span></p></td> <td> <p> <span>Packed</span></p></td> <td> <p>MySQL擴展</p></td> </tr><tr><td> <p> <span>NULLABLE</span></p></td> <td> <p> <span>Null</span></p></td> <td> <p>MySQL擴展</p></td> </tr><tr><td> <p> <span>INDEX_TYPE</span></p></td> <td> <p> <span>Index_type</span></p></td> <td> <p>MySQL擴展</p></td> </tr><tr><td> <p> <span>COMMENT</span></p></td> <td> <p> <span>Comment</span></p></td> <td> <p>MySQL擴展</p></td> </tr></table> 注釋: ·???????? 沒有關于這些索引的標準表。上面的列表與SQL服務器2000中sp_statistics返回的值類似。不同之處在于用CATALOG替換了QUALIFIER,并用SCHEMA替換了OWNER。 顯而易見,前述表和SHOW INDEX的輸出均是由相同的父對象導出的。因此,相關性已關閉。 下述語句是等效的: ~~~ SELECT * FROM INFORMATION_SCHEMA.STATISTICS ~~~ ~~~ ? WHERE table_name = 'tbl_name' ~~~ ~~~ ?[AND table_schema = 'db_name'] ~~~ ~~~ ? ~~~ ~~~ SHOW INDEX ~~~ ~~~ ?FROM tbl_name ~~~ ~~~ ? [FROM db_name] ~~~ ### 23.1.5.?INFORMATION_SCHEMA USER_PRIVILEGES表 USER_PRIVILEGES(用戶權限)表給出了關于全程權限的信息。該信息源自mysql.user授權表。 <table border="1" cellpadding="0" id="table6"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>GRANTEE</span></p></td> <td> <p><span>?</span></p></td> <td> <p>例如“user'@'host”</p></td> </tr><tr><td> <p> <span>TABLE_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>PRIVILEGE_TYPE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>IS_GRANTABLE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr></table> 注釋: ·???????? 這是一個非標準表。其值來自mysql.user表。 ### 23.1.6.?INFORMATION_SCHEMA SCHEMA_PRIVILEGES表 SCHEMA_PRIVILEGES(方案權限)表給出了關于方案(數據庫)權限的信息。該信息來自mysql.db授權表。 <table border="1" cellpadding="0" id="table7"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>GRANTEE</span></p></td> <td> <p><span>?</span></p></td> <td> <p>例如“user'@'host”</p></td> </tr><tr><td> <p> <span>TABLE_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>TABLE_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>PRIVILEGE_TYPE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>IS_GRANTABLE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr></table> 注釋: ·???????? 這是一個非標準表。其值來自mysql.db表。 ### 23.1.7.?INFORMATION_SCHEMA TABLE_PRIVILEGES表 TABLE_PRIVILEGES(表權限)表給出了關于表權限的信息。該信息源自mysql.tables_priv授權表。 <table border="1" cellpadding="0" id="table8"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>GRANTEE</span></p></td> <td> <p><span>?</span></p></td> <td> <p>例如“user'@'host”</p></td> </tr><tr><td> <p> <span>TABLE_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>TABLE_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>PRIVILEGE_TYPE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>IS_GRANTABLE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr></table> 下述語句不等效: ~~~ SELECT ... FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES ~~~ ~~~ ? ~~~ ~~~ SHOW GRANTS ... ~~~ PRIVILEGE_TYPE可以包含這些值之一(僅能一個):SELECT、INSERT、UPDATE、REFERENCES、ALTER、INDEX、DROP、CREATE VIEW。 ### 23.1.8.?INFORMATION_SCHEMA COLUMN_PRIVILEGES表 COLUMN_PRIVILEGES(列權限)表給出了關于列權限的信息。該信息源自mysql.columns_priv授權表。 <table border="1" cellpadding="0" id="table9"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>GRANTEE</span></p></td> <td> <p><span>?</span></p></td> <td> <p>例如“user'@'host”</p></td> </tr><tr><td> <p> <span>TABLE_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>TABLE_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>COLUMN_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>PRIVILEGE_TYPE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>IS_GRANTABLE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr></table> 注釋: ·???????? 在SHOW FULL COLUMNS(顯示完整列)的輸出中,權限值位于一個字段并采用小寫形式,例如select、insert、update、references。在COLUMN_PRIVILEGES中,每種權限占一行,并為大寫形式。 ·???????? PRIVILEGE_TYPE可以包含這些值之一(僅能一個):SELECT, INSERT, UPDATE, REFERENCES. ·???????? 如果用戶有GRANT OPTION權限,那么IS_GRANTABLE應為YES。否則,IS_GRANTABLE應為NO。在輸出中,不會將GRANT OPTION作為單獨權限列出。 下述語句不等效: ~~~ SELECT ... FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES ~~~ ~~~ ? ~~~ ~~~ SHOW GRANTS ... ~~~ ### 23.1.9.?INFORMATION_SCHEMA CHARACTER_SETS表 CHARACTER_SETS(字符集)表提供了關于可用字符集的信息。 <table border="1" cellpadding="0" id="table10"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>CHARACTER_SET_NAME</span></p></td> <td> <p> <span>Charset</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>DEFAULT_COLLATE_NAME</span></p></td> <td> <p> <span>Default collation</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>DESCRIPION</span></p></td> <td> <p> <span>Description</span></p></td> <td> <p>MySQL擴展</p></td> </tr><tr><td> <p> <span>MAXLEN</span></p></td> <td> <p> <span>Maxlen</span></p></td> <td> <p>MySQL擴展</p></td> </tr></table> 注釋: ·???????? 我們增加了兩個非標準列,分別對應于SHOW CHARACTER SET輸出的Description(描述)和Maxlen(最大長度)列。 下述語句是等效的: ~~~ SELECT * FROM INFORMATION_SCHEMA.CHARACTER_SETS ~~~ ~~~ ? [WHERE name LIKE 'wild'] ~~~ ~~~ ? ~~~ ~~~ SHOW CHARACTER SET ~~~ ~~~ ? [LIKE 'wild'] ~~~ ### 23.1.10.?INFORMATION_SCHEMA COLLATIONS表 COLLATIONS表提供了關于各字符集的對照信息。 <table border="1" cellpadding="0" id="table11"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>COLLATION_NAME</span></p></td> <td> <p> <span>Collation</span></p></td> <td> <p><span>?</span></p></td> </tr></table> 注釋: ·???????? 我們增加了5個非標準列,分別對應于SHOW COLLATION輸出的Charset、Id、Default、Compiled和Sortlen列。 下述語句是等效的: ~~~ SELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLLATIONS ~~~ ~~~ ? [WHERE collation_name LIKE 'wild'] ~~~ ~~~ ? ~~~ ~~~ SHOW COLLATION ~~~ ~~~ ? [LIKE 'wild'] ~~~ ### 23.1.11.?INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY表 COLLATION_CHARACTER_SET_APPLICABILITY表指明了可用于校對的字符集。這些列等效于SHOW COLLATION的前兩個顯示字段。 <table border="1" cellpadding="0" id="table12"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>COLLATION_NAME</span></p></td> <td> <p> <span>Collation</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>CHARACTER_SET_NAME</span></p></td> <td> <p> <span>Charset</span></p></td> <td> <p><span>?</span></p></td> </tr></table> ### 23.1.12.?INFORMATION_SCHEMA TABLE_CONSTRAINTS表 TABLE_CONSTRAINTS表描述了存在約束的表。 <table border="1" cellpadding="0" id="table13"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>CONSTRAINT_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>CONSTRAINT_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>CONSTRAINT_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>CONSTRAINT_TYPE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr></table> 注釋: ·???????? CONSTRAINT_TYPE的值可以是UNIQUE(唯一)、PRIMARY KEY(主鍵)或FOREIGN KEY(外鍵)。 ·???????? 當Non_unique字段為0時,UNIQUE和PRIMARY KEY信息與SHOW INDEX輸出的Key_name字段中給出的信息基本相同。 ·???????? CONSTRAINT_TYPE列可包含下述值之一:UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK。這是一個CHAR(非ENUM)列。在我們支持CHECK前,CHECK值不可用。 ### 23.1.13.?INFORMATION_SCHEMA KEY_COLUMN_USAGE表 KEY_COLUMN_USAGE表描述了具有約束的鍵列。 <table border="1" cellpadding="0" id="table14"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>CONSTRAINT_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>CONSTRAINT_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>CONSTRAINT_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>COLUMN_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>ORDINAL_POSITION</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>POSITION_IN_UNIQUE_CONSTRAINT</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>REFERENCED_TABLE_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>REFERENCED_TABLE_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>REFERENCED_COLUMN_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr></table> 注釋: ·???????? 如果約束為外鍵,這就是外鍵列,而不是外鍵引用的列。 ·???????? ORDINAL_POSITION的值是列在約束中的位置,而不是列在表中的位置。列位置采用從1開始的數值編號。 ·???????? 對于“唯一”和“主鍵”約束,POSITION_IN_UNIQUE_CONSTRAINT的值為NULL。對于“外鍵”約束,它是所引用表內鍵中的順序位置。 例如,假定有兩個具有下述定義的表t1和t3: ~~~ CREATE TABLE t1 ~~~ ~~~ ( ~~~ ~~~ s1 INT, ~~~ ~~~ s2 INT, ~~~ ~~~ s3 INT, ~~~ ~~~ PRIMARY KEY(s3) ~~~ ~~~ ) ENGINE=InnoDB; ~~~ ~~~ ? ~~~ ~~~ CREATE TABLE t3 ~~~ ~~~ ( ~~~ ~~~ s1 INT, ~~~ ~~~ s2 INT, ~~~ ~~~ s3 INT, ~~~ ~~~ KEY(s1), ~~~ ~~~ CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3) ~~~ ~~~ ) ENGINE=InnoDB; ~~~ 對于這兩個表,KEY_COLUMN_USAGE表有兩行: o??????? 一行含有CONSTRAINT_NAME='PRIMARY', TABLE_NAME='t1', COLUMN_NAME='s3', ORDINAL_POSITION=1, POSITION_IN_UNIQUE_CONSTRAINT=NULL。 o??????? 另一行含有CONSTRAINT_NAME='CO', TABLE_NAME='t3', COLUMN_NAME='s2', ORDINAL_POSITION=1, POSITION_IN_UNIQUE_CONSTRAINT=1。 ### 23.1.14.?INFORMATION_SCHEMA ROUTINES表 ROUTINES表提供了關于存儲子程序(存儲程序和函數)的信息。此時,ROUTINES表不包含自定義函數(UDF)。 名為“mysql.proc name”的列指明了對應于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列,如果有的話。 <table border="1" cellpadding="0" id="table15"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b> mysql.proc</b></span><strong><span>名</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>SPECIFIC_NAME</span></p></td> <td> <p> <span>specific_name</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>ROUTINE_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>ROUTINE_SCHEMA</span></p></td> <td> <p> <span>db</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>ROUTINE_NAME</span></p></td> <td> <p> <span>name</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>ROUTINE_TYPE</span></p></td> <td> <p> <span>type</span></p></td> <td> <p> <span>{PROCEDURE|FUNCTION}</span></p></td> </tr><tr><td> <p> <span>DTD_IDENTIFIER</span></p></td> <td> <p><span>?</span></p></td> <td> <p>(數據類型描述符)</p></td> </tr><tr><td> <p> <span>ROUTINE_BODY</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>SQL</span></p></td> </tr><tr><td> <p> <span>ROUTINE_DEFINITION</span></p></td> <td> <p> <span>body</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>EXTERNAL_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>EXTERNAL_LANGUAGE</span></p></td> <td> <p> <span>language</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>PARAMETER_STYLE</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>SQL</span></p></td> </tr><tr><td> <p> <span>IS_DETERMINISTIC</span></p></td> <td> <p> <span>is_deterministic</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>SQL_DATA_ACCESS</span></p></td> <td> <p> <span>sql_data_access</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>SQL_PATH</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>SECURITY_TYPE</span></p></td> <td> <p> <span>security_type</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>CREATED</span></p></td> <td> <p> <span>created</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>LAST_ALTERED</span></p></td> <td> <p> <span>modified</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>SQL_MODE</span></p></td> <td> <p> <span>sql_mode</span></p></td> <td> <p>MySQL擴展</p></td> </tr><tr><td> <p> <span>ROUTINE_COMMENT</span></p></td> <td> <p> <span>comment</span></p></td> <td> <p>MySQL擴展</p></td> </tr><tr><td> <p> <span>DEFINER</span></p></td> <td> <p> <span>definer</span></p></td> <td> <p>MySQL擴展</p></td> </tr></table> 注釋: ·???????? MySQL計算EXTERNAL_LANGUAGE,因此: o??????? 如果mysql.proc.language='SQL',那么EXTERNAL_LANGUAGE為NULL。 o??????? 否則,EXTERNAL_LANGUAGE為mysql.proc.language中的值。然而,由于尚沒有外部語言,因此該值總為NULL。 ### 23.1.15.?INFORMATION_SCHEMA VIEWS表 VIEWS表給出了關于數據庫中的視圖的信息。 <table border="1" cellpadding="0" id="table16"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>TABLE_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>TABLE_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TABLE_NAME</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>VIEW_DEFINITION</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>CHECK_OPTION</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>IS_UPDATABLE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>DEFINER</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>SECURITY_TYPE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr></table> 注釋: ·???????? 有一種新的權限SHOW VIEW,如果沒有它,將無法看到VIEWS表。 ·???????? VIEW_DEFINITION列含有你在SHOW CREATE VIEW所生成的Create Table字段中見到的大多數信息。跳過SELECT前的單詞,并跳過具有CHECK OPTION(檢查選項)的單詞。例如,如果初始語句是: ~~~ ·??????????????? CREATE VIEW v AS ~~~ ~~~ ·??????????????? ??SELECT s2,s1 FROM t ~~~ ~~~ ·??????????????? ??WHERE s1 > 5 ~~~ ~~~ ·??????????????? ??ORDER BY s1 ~~~ ~~~ ·??????????????? ??WITH CHECK OPTION; ~~~ 那么視圖定義為: ~~~ SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1 ~~~ ·???????? CHECK_OPTION列的值總為NONE。 ·???????? 如果視圖是可更新的,IS_UPDATABLE列的值為YES,如果視圖是不可更新的,IS_UPDATABLE列的值為NO。 ·???????? DEFINER列指明了定義視圖的人。SECURITY_TYPE的值為DEFINER或INVOKER。 ### 23.1.16.?INFORMATION_SCHEMA TRIGGERS表 TRIGGERS表提供了關于觸發程序的信息。 必須有SUPER權限才能查看該表。 <table border="1" cellpadding="0" id="table17"><tr><td> <p><strong><span> 標準名稱</span></strong></p></td> <td> <p><span><b>SHOW</b></span><strong><span>名稱</span></strong></p></td> <td> <p><strong><span> 注釋</span></strong></p></td> </tr><tr><td> <p> <span>TRIGGER_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>TRIGGER_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>TRIGGER_NAME</span></p></td> <td> <p> <span>Trigger</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>EVENT_MANIPULATION</span></p></td> <td> <p> <span>Event</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>EVENT_OBJECT_CATALOG</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>EVENT_OBJECT_SCHEMA</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>EVENT_OBJECT_TABLE</span></p></td> <td> <p> <span>Table</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>ACTION_ORDER</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>0</span></p></td> </tr><tr><td> <p> <span>ACTION_CONDITION</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>ACTION_STATEMENT</span></p></td> <td> <p> <span>Statement</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>ACTION_ORIENTATION</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>ROW</span></p></td> </tr><tr><td> <p> <span>ACTION_TIMING</span></p></td> <td> <p> <span>Timing</span></p></td> <td> <p><span>?</span></p></td> </tr><tr><td> <p> <span>ACTION_REFERENCE_OLD_TABLE</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>ACTION_REFERENCE_NEW_TABLE</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span></p></td> </tr><tr><td> <p> <span>ACTION_REFERENCE_OLD_ROW</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>OLD</span></p></td> </tr><tr><td> <p> <span>ACTION_REFERENCE_NEW_ROW</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NEW</span></p></td> </tr><tr><td> <p> <span>CREATED</span></p></td> <td> <p><span>?</span></p></td> <td> <p> <span>NULL</span><span> (<span>0</span>)</span></p></td> </tr><tr><td> <p> <span>SQL_MODE</span></p></td> <td> <p><span>?</span></p></td> <td> <p><span>?</span></p></td> </tr></table> 注釋: ·???????? TRIGGER_SCHEMA和TRIGGER_NAME列中分別含有相應數據庫的名稱以及觸發程序的名稱,在該數據庫中,含有該觸發程序。 ·???????? EVENT_MANIPULATION列含有下述值之一:INSERT、DELETE、或UPDATE。 ·???????? 正如[第21章:](#)[*觸發程序*](# "Chapter?21.?Triggers")中指出的那樣,每個觸發程序均與一個表準確相關。EVENT_OBJECT_SCHEMA和EVENT_OBJECT_TABLE列包含相應的數據庫和表名,在該數據庫中,含有該表。 ·???????? ACTION_ORDER語句含有觸發程序動作(在相同表上所有類似觸發程序列表中)的順序位置。目前該值總為0,這是因為在相同表上具有相同EVENT_MANIPULATION和ACTION_TIMING的觸發程序不能超過1個。 ·???????? ACTION_STATEMENT列含有激活了觸發程序時將要執行的語句。這與SHOW TRIGGERS輸出的Statement(語句)列中顯示的文本相同。注意,該文本采用了UTF-8編碼方式。 ·???????? ACTION_ORIENTATION列總含有值“ROW”。 ·???????? ACTION_TIMING列含有下述兩種值之一:“BEFORE”或“AFTER”。 ·???????? 列ACTION_REFERENCE_OLD_ROW和ACTION_REFERENCE_NEW_ROW分別含有舊的和新的列標識符。這意味著ACTION_REFERENCE_OLD_ROW總含有值“OLD”,ACTION_REFERENCE_NEW_ROW總含有值“NEW”。 ·???????? SQL_MODE列顯示了創建觸發程序時有效的服務器SQL模式(無論當前的服務器SQL模式為何,只要激活了觸發程序,它將保持有效)。該列的可能取值范圍與sql_mode系統變量的取值范圍相同。請參見[5.3.2節,“SQL服務器模式”](# "5.3.2.?The Server SQL Mode")。 ·???????? 在下述列中,目前總含有NULL:TRIGGER_CATALOG,EVENT_OBJECT_CATALOG,ACTION_CONDITION,ACTION_REFERENCE_OLD_TABLE,ACTION_REFERENCE_NEW_TABLE和CREATED。 例如,使用[21.3節,“使用觸發程序”](# "21.3.?Using Triggers")中定義的觸發程序ins_sum。 ~~~ mysql> SELECT * FROM INFORMATION_SCHEMA.TRIGGERS\G ~~~ ~~~ *************************** 1. row *************************** ~~~ ~~~ TRIGGER_CATALOG: NULL ~~~ ~~~ TRIGGER_SCHEMA: test ~~~ ~~~ TRIGGER_NAME: ins_sum ~~~ ~~~ ? EVENT_MANIPULATION: INSERT ~~~ ~~~ EVENT_OBJECT_CATALOG: NULL ~~~ ~~~ EVENT_OBJECT_SCHEMA: test ~~~ ~~~ ? EVENT_OBJECT_TABLE: account ~~~ ~~~ ACTION_ORDER: 0 ~~~ ~~~ ACTION_CONDITION: NULL ~~~ ~~~ ACTION_STATEMENT:? SET @sum = @sum + NEW.amount ~~~ ~~~ ? ACTION_ORIENTATION: ROW ~~~ ~~~ ACTION_TIMING: BEFORE ~~~ ~~~ ACTION_REFERENCE_OLD_TABLE: NULL ~~~ ~~~ ACTION_REFERENCE_NEW_TABLE: NULL ~~~ ~~~ ? ACTION_REFERENCE_OLD_ROW: OLD ~~~ ~~~ ? ACTION_REFERENCE_NEW_ROW: NEW ~~~ ~~~ CREATED: NULL ~~~ ~~~ 1 row in set (1.54 sec) ~~~ 另請參見[13.5.4.20節,“SHOW TRIGGERS語法”](# "13.5.4.20.?SHOW TRIGGERS Syntax")。 ### 23.1.17.?其他INFORMATION_SCHEMA表 我們打算實施附加的INFORMATION_SCHEMA表。尤其是,我們確認了對INFORMATION_SCHEMA.PARAMETERS和INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS的需求。 ### 23.2.?SHOW語句的擴展`` 某些SHOW語句的擴展伴隨著INFORMATION_SCHEMA的實施: ·???????? SHOW可用于獲取關于INFORMATION_SCHEMA本身結構的信息。 ·???????? 一些SHOW語句允許使用WHERE子句,這樣,在指定需要顯示的行時,可更為靈活。 INFORMATION_SCHEMA是一種信息數據庫,因此,在SHOW DATABASES的輸出中,包含其名稱。與此類似,SHOW TABLES可與INFORMATION_SCHEMA一起使用,以獲取表清單。 ~~~ mysql> SHOW TABLES FROM INFORMATION_SCHEMA; ~~~ ~~~ +---------------------------------------+ ~~~ ~~~ | Tables_in_information_schema| ~~~ ~~~ +---------------------------------------+ ~~~ ~~~ | SCHEMATA| ~~~ ~~~ | TABLES| ~~~ ~~~ | COLUMNS | ~~~ ~~~ | CHARACTER_SETS | ~~~ ~~~ | COLLATIONS? | ~~~ ~~~ | COLLATION_CHARACTER_SET_APPLICABILITY | ~~~ ~~~ | ROUTINES| ~~~ ~~~ | STATISTICS? | ~~~ ~~~ | VIEWS | ~~~ ~~~ | TRIGGERS| ~~~ ~~~ | USER_PRIVILEGES| ~~~ ~~~ | SCHEMA_PRIVILEGES? | ~~~ ~~~ | TABLE_PRIVILEGES| ~~~ ~~~ | COLUMN_PRIVILEGES? | ~~~ ~~~ | TABLE_CONSTRAINTS? | ~~~ ~~~ | KEY_COLUMN_USAGE| ~~~ ~~~ +---------------------------------------+ ~~~ SHOW COLUMNS和DESCRIBE能夠顯示單獨INFORMATION_SCHEMA表中的列信息。 擴展了一些SHOW語句,允許使用WHERE子句: ~~~ SHOW CHARACTER SET ~~~ ~~~ SHOW COLLATION ~~~ ~~~ SHOW COLUMNS ~~~ ~~~ SHOW DATABASES ~~~ ~~~ SHOW FUNCTION STATUS ~~~ ~~~ SHOW KEYS ~~~ ~~~ SHOW OPEN TABLES ~~~ ~~~ SHOW PROCEDURE STATUS ~~~ ~~~ SHOW STATUS ~~~ ~~~ SHOW TABLE STATUS ~~~ ~~~ SHOW TABLES ~~~ ~~~ SHOW VARIABLES ~~~ 如果有WHERE子句的話,將根據SHOW語句顯示的列名進行計算。例如,SHOW COLLATION語句可產生這些輸出列: 例如,SHOW CHARACTER SET語句可產生這些輸出列: ~~~ mysql> SHOW CHARACTER SET; ~~~ | ~~~ Charset ~~~ | ~~~ 描述 ~~~ | ~~~ 默認校對 ~~~ | ~~~ 最大長度 ~~~ | |-----|-----|-----|-----| | ~~~ ?big5 ~~~ | ~~~ ?Big5 Traditional Chinese ~~~ | ~~~ ?big5_chinese_ci ~~~ | ~~~ 2 ~~~ | | ~~~ ?dec8 ~~~ | ~~~ ?DEC West European ~~~ | ~~~ ?dec8_swedish_ci ~~~ | ~~~ 1 ~~~ | | ~~~ ?cp850 ~~~ | ~~~ ?DOS West European ~~~ | ~~~ ?cp850_general_ci ~~~ | ~~~ 1 ~~~ | | ~~~ ?hp8 ~~~ | ~~~ ?HP West European ~~~ | ~~~ ?hp8_english_ci ~~~ | ~~~ 1 ~~~ | | ~~~ ?koi8r ~~~ | ~~~ ?KOI8-R Relcom Russian ~~~ | ~~~ ?koi8r_general_ci ~~~ | ~~~ 1 ~~~ | | ~~~ ?latin1 ~~~ | ~~~ ?cp1252 West European? ~~~ | ~~~ ?latin1_swedish_ci ~~~ | ~~~ 1 ~~~ | | ~~~ ?latin2 ~~~ | ~~~ ?ISO 8859-2 Central European ~~~ | ~~~ ?latin2_general_ci ~~~ | ~~~ 1 ~~~ | ~~~ ? ~~~ 要想與SHOW CHARACTER SET一起使用WHERE子句,應引用這些列名稱。例如,在下面的語句中,給出了用于默認校對且含有字符串“japanese”的字符集的信息: ~~~ mysql> SHOW CHARACTER SET WHERE `Default collation` LIKE '%japanese%'; ~~~ | ~~~ ?Charset ~~~ | ?描述? | ~~~ 默認校對 ~~~ | ~~~ 最大長度 ~~~ | |-----|-----|-----|-----| | ~~~ ?ujis ~~~ | ~~~ ?EUC-JP Japanese ~~~ | ~~~ ?ujis_japanese_ci ~~~ | ~~~ 3 ~~~ | | ~~~ ?sjis ~~~ | ~~~ ?Shift-JIS Japanese? ~~~ | ~~~ ?sjis_japanese_ci ~~~ | ~~~ 2 ~~~ | | ~~~ ?cp932 ~~~ | ~~~ ?SJIS for Windows Japanese ~~~ | ~~~ ?cp932_japanese_ci ~~~ | ~~~ 2 ~~~ | | ~~~ ?eucjpms ~~~ | ~~~ ?UJIS for Windows Japanese ~~~ | ~~~ ?eucjpms_japanese_ci ~~~ | ~~~ 3 ~~~ | 該語句顯示了多字節字符集。 ~~~ mysql> SHOW CHARACTER SET WHERE Maxlen > 1; ~~~ | ~~~ ?Charset ~~~ | ~~~ ?描述? ~~~ | ~~~ 默認校對 ~~~ | ~~~ 最大長度 ~~~ | |-----|-----|-----|-----| | ~~~ ?big5 ~~~ | ~~~ ?Big5 Traditional Chinese? ~~~ | ~~~ ?big5_chinese_ci ~~~ | ~~~ 2 ~~~ | | ~~~ ?ujis ~~~ | ~~~ ?EUC-JP Japanese ~~~ | ~~~ ?ujis_japanese_ci ~~~ | ~~~ 3 ~~~ | | ~~~ ?sjis ~~~ | ~~~ ?Shift-JIS Japanese? ~~~ | ~~~ ?sjis_japanese_ci ~~~ | ~~~ 2 ~~~ | | ~~~ ?euckr ~~~ | ~~~ ?EUC-KR Korean ~~~ | ~~~ ?euckr_korean_ci ~~~ | ~~~ 2 ~~~ | | ~~~ ?gb2312? ~~~ | ~~~ ?GB2312 Simplified Chinese ~~~ | ~~~ ?gb2312_chinese_ci ~~~ | ~~~ 2 ~~~ | | ~~~ ?gbk ~~~ | ~~~ ?GBK Simplified Chinese ~~~ | ~~~ ?gbk_chinese_ci ~~~ | ~~~ 2 ~~~ | | ~~~ ?utf8 ~~~ | ~~~ ?UTF-8 Unicode ~~~ | ~~~ ?utf8_general_ci ~~~ | ~~~ 3 ~~~ | | ~~~ ?ucs2 ~~~ | ~~~ ?UCS-2 Unicode ~~~ | ~~~ ?ucs2_general_ci ~~~ | ~~~ 2 ~~~ | | ~~~ ?cp932 ~~~ | ~~~ ?SJIS for Windows Japanese ~~~ | ~~~ ?cp932_japanese_ci ~~~ | ~~~ 2 ~~~ | | ~~~ ?eucjpms ~~~ | ~~~ ?UJIS for Windows Japanese ~~~ | ~~~ ?eucjpms_japanese_ci ~~~ | ~~~ 3 ~~~ | ~~~ ? ~~~ 這是MySQL參考手冊的翻譯版本,關于MySQL參考手冊,請訪問[dev.mysql.com](http://dev.mysql.com/doc/mysql/en)。原始參考手冊為英文版,與英文版參考手冊相比,本翻譯版可能不是最新的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看