国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

directory search
目錄 前言 1. 一般信息 1.1. 關于本手冊 1.2. 本手冊采用的慣例 1.3. MySQL AB概述 1.4. MySQL數(shù)據(jù)庫管理系統(tǒng)概述 1.4.1. MySQL的歷史 1.4.2. MySQL的的主要特性 1.4.3. MySQL穩(wěn)定性 1.4.4. MySQL表最大能達到多少 1.4.5. 2000年兼容性 1.5. MaxDB數(shù)據(jù)庫管理系統(tǒng)概述 1.5.1. 什么是MaxDB? 1.5.2. MaxDB的歷史 1.5.3. MaxDB的特性 1.5.4. 許可和支持 1.5.5. MaxDB和MySQL之間的特性差異 1.5.6. MaxDB和MySQL之間的協(xié)同性 1.5.7. 與MaxDB有關的鏈接 1.6. MySQL發(fā)展大事記 1.6.1. MySQL 5.1的新特性 1.7. MySQL信息源 1.7.1. MySQL郵件列表 1.7.2. IRC(在線聊天系統(tǒng))上的MySQL社區(qū)支持 1.7.3. MySQL論壇上的MySQL社區(qū)支持 1.8. MySQL標準的兼容性 1.8.1. MySQL遵從的標準是什么 1.8.2. 選擇SQL模式 1.8.3. 在ANSI模式下運行MySQL 1.8.4. MySQL對標準SQL的擴展 1.8.5. MySQL與標準SQL的差別 1.8.6. MySQL處理約束的方式 2. 安裝MySQL 2.1. 一般安裝問題 2.1.1. MySQL支持的操作系統(tǒng) 2.1.2. 選擇要安裝的MySQL分發(fā)版 2.1.3. 怎樣獲得MySQL 2.1.4. 通過MD5校驗和或GnuPG驗證軟件包的完整性 2.1.5. 安裝布局 2.2. 使用二進制分發(fā)版的標準MySQL安裝 2.3. 在Windows上安裝MySQL 2.3.1. Windows系統(tǒng)要求 2.3.2. 選擇安裝軟件包 2.3.3. 用自動安裝器安裝MySQL 2.3.4. 使用MySQL安裝向?qū)?/a> 2.3.5. 使用配置向?qū)?/a> 2.3.6. 通過非安裝Zip文件安裝MySQL 2.3.7. 提取安裝檔案文件 2.3.8. 創(chuàng)建選項文件 2.3.9. 選擇MySQL服務器類型 2.3.10. 首次啟動服務器 2.3.11. 從Windows命令行啟動MySQL 2.3.12. 以Windows服務方式啟動MySQL 2.3.13. 測試MySQL安裝 2.3.14. 在Windows環(huán)境下對MySQL安裝的故障診斷與排除 2.3.15. 在Windows下升級MySQL 2.3.16. Windows版MySQL同Unix版MySQL對比 2.4. 在Linux下安裝MySQL 2.5.在Mac OS X中安裝MySQL 2.6. 在NetWare中安裝MySQL 2.7. 在其它類Unix系統(tǒng)中安裝MySQL 2.8. 使用源碼分發(fā)版安裝MySQL 2.8.1. 源碼安裝概述 2.8.2. 典型配置選項 2.8.3. 從開發(fā)源碼樹安裝 2.8.4. 處理MySQL編譯問題 2.8.5. MIT-pthreads注意事項 2.8.6. 在Windows下從源碼安裝MySQL 2.8.7. 在Windows下編譯MySQL客戶端 2.9. 安裝后的設置和測試 2.9.1. Windows下安裝后的過程 2.9.2. Unix下安裝后的過程 2.9.3. 使初始MySQL賬戶安全 2.10. 升級MySQL 2.10.1. 從5.0版升級 2.10.2. 升級授權(quán)表 2.10.3. 將MySQL數(shù)據(jù)庫拷貝到另一臺機器 2.11. 降級MySQL 2.12. 具體操作系統(tǒng)相關的注意事項 2.12.1. Linux注意事項 2.12.2. Mac OS X注意事項 2.12.3. Solaris注意事項 2.12.4. BSD注意事項 2.12.5. 其它Unix注意事項 2.12.6. OS/2注意事項 2.13. Perl安裝注意事項 2.13.1. 在Unix中安裝Perl 2.13.2. 在Windows下安裝ActiveState Perl 2.13.3. 使用Perl DBI/DBD接口的問題 3. 教程 3.1. 連接與斷開服務器 3.2. 輸入查詢 3.3. 創(chuàng)建并使用數(shù)據(jù)庫 3.3.1. 創(chuàng)建并選擇數(shù)據(jù)庫 3.3.2. 創(chuàng)建表 3.3.3. 將數(shù)據(jù)裝入表中 3.3.4. 從表檢索信息 3.4. 獲得數(shù)據(jù)庫和表的信息 NoName 3.6. 常用查詢的例子 3.6.1. 列的最大值 3.6.2. 擁有某個列的最大值的行 3.6.3. 列的最大值:按組 3.6.4. 擁有某個字段的組間最大值的行 3.6.5. 使用用戶變量 3.6.6. 使用外鍵 3.6.7. 根據(jù)兩個鍵搜索 3.6.8. 根據(jù)天計算訪問量 3.6.9. 使用AUTO_INCREMENT 3.7. 孿生項目的查詢 3.7.1. 查找所有未分發(fā)的孿生項 3.7.2. 顯示孿生對狀態(tài)的表 3.8. 與Apache一起使用MySQL 4. MySQL程序概述 4.1. MySQL程序概述 4.2. 調(diào)用MySQL程序 4.3. 指定程序選項 4.3.1. 在命令行上使用選項 4.3.2. 使用選項文件 4.3.3. 用環(huán)境變量指定選項 4.3.4. 使用選項設置程序變量 5. 數(shù)據(jù)庫管理 5.1. MySQL服務器和服務器啟動腳本 5.1.1. 服務器端腳本和實用工具概述 5.1.2. mysqld-max擴展MySQL服務器 5.1.3. mysqld_safe:MySQL服務器啟動腳本 5.1.4. mysql.server:MySQL服務器啟動腳本 5.1.5. mysqld_multi:管理多個MySQL服務器的程序 5.2. mysqlmanager:MySQL實例管理器 5.2.1. 用MySQL實例管理器啟動MySQL服務器 5.2.2. 連接到MySQL實例管理器并創(chuàng)建用戶賬戶 5.2.3. MySQL實例管理器命令行選項 5.2.4. MySQL實例管理器配置文件 5.2.5. MySQL實例管理器識別的命令 5.3. mysqld:MySQL服務器 5.3.1. mysqld命令行選項 5.3.2. SQL服務器模式 5.3.3. 服務器系統(tǒng)變量 5.3.4. 服務器狀態(tài)變量 5.4. mysql_fix_privilege_tables:升級MySQL系統(tǒng)表 5.5. MySQL服務器關機進程 5.6. 一般安全問題 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻擊者面前保持安全 5.6.3. Mysqld安全相關啟動選項 5.6.4. LOAD DATA LOCAL安全問題 5.7. MySQL訪問權(quán)限系統(tǒng) 5.7.1. 權(quán)限系統(tǒng)的作用 5.7.2. 權(quán)限系統(tǒng)工作原理 5.7.3. MySQL提供的權(quán)限 5.7.4. 與MySQL服務器連接 5.7.5. 訪問控制 5.7.6. 訪問控制 5.7.7. 權(quán)限更改何時生效 5.7.8. 拒絕訪問錯誤的原因 5.7.9. MySQL 4.1中的密碼哈希處理 5.8. MySQL用戶賬戶管理 5.8.1. MySQL用戶名和密碼 5.8.2. 向MySQL增加新用戶賬戶 5.8.3. 從MySQL刪除用戶賬戶 5.8.4. 限制賬戶資源 5.8.5. 設置賬戶密碼 5.8.6. 使你的密碼安全 5.8.7. 使用安全連接 5.9. 備份與恢復 5.9.1. 數(shù)據(jù)庫備份 5.9.2. 示例用備份與恢復策略 5.9.3. 自動恢復 5.9.4. 表維護和崩潰恢復 5.9.5. myisamchk:MyISAM表維護實用工具 5.9.6. 建立表維護計劃 5.9.7. 獲取關于表的信息 5.10. MySQL本地化和國際應用 5.10.1. 數(shù)據(jù)和排序用字符集 5.10.2. 設置錯誤消息語言 5.10.3. 添加新的字符集 5.10.4. 字符定義數(shù)組 5.10.5. 字符串比較支持 5.10.6. 多字節(jié)字符支持 5.10.7. 字符集問題 5.10.8. MySQL服務器時區(qū)支持 5.11. MySQL日志文件 5.11.1. 錯誤日志 5.11.2. 通用查詢?nèi)罩?/a> 5.11.3. 二進制日志 5.11.4. 慢速查詢?nèi)罩?/a> 5.11.5. 日志文件維護 5.12. 在同一臺機器上運行多個MySQL服務器 5.12.1. 在Windows下運行多個服務器 5.12.2. 在Unix中運行多個服務器 5.12.3. 在多服務器環(huán)境中使用客戶端程序 5.13. MySQL查詢高速緩沖 5.13.1. 查詢高速緩沖如何工作 5.13.2. 查詢高速緩沖SELECT選項 5.13.3. 查詢高速緩沖配置 5.13.4. 查詢高速緩沖狀態(tài)和維護 6. MySQL中的復制 6.1. 復制介紹 6.2. 復制實施概述 6.3. 復制實施細節(jié) 6.3.1. 復制主線程狀態(tài) 6.3.2. 復制從I/O線程狀態(tài) 6.3.3. 復制從SQL線程狀態(tài) 6.3.4. 復制傳遞和狀態(tài)文件 6.4. 如何設置復制 6.5. 不同MySQL版本之間的復制兼容性 6.6. 升級復制設置 6.6.1. 將復制升級到5.0版 6.7. 復制特性和已知問題 6.8. 復制啟動選項 6.9. 復制FAQ 6.10. 復制故障診斷與排除 6.11. 通報復制缺陷 6.12. 多服務器復制中的Auto-Increment 7. 優(yōu)化 7.1. 優(yōu)化概述 7.1.1. MySQL設計局限與折衷 7.1.2. 為可移植性設計應用程序 7.1.3. 我們已將MySQL用在何處? 7.1.4. MySQL基準套件 7.1.5. 使用自己的基準 7.2. 優(yōu)化SELECT語句和其它查詢 7.2.1. EXPLAIN語法(獲取SELECT相關信息) 7.2.2. 估計查詢性能 7.2.3. SELECT查詢的速度 7.2.4. MySQL怎樣優(yōu)化WHERE子句 7.2.5. 范圍優(yōu)化 7.2.6. 索引合并優(yōu)化 7.2.7. MySQL如何優(yōu)化IS NULL 7.2.8. MySQL如何優(yōu)化DISTINCT 7.2.9. MySQL如何優(yōu)化LEFT JOIN和RIGHT JOIN 7.2.10. MySQL如何優(yōu)化嵌套Join 7.2.11. MySQL如何簡化外部聯(lián)合 7.2.12. MySQL如何優(yōu)化ORDER BY 7.2.13. MySQL如何優(yōu)化GROUP BY 7.2.14. MySQL如何優(yōu)化LIMIT 7.2.15. 如何避免表掃描 7.2.16. INSERT語句的速度 7.2.17. UPDATE語句的速度 7.2.18. DELETE語句的速度 7.2.19. 其它優(yōu)化技巧 7.3. 鎖定事宜 7.3.1. 鎖定方法 7.3.2. 表鎖定事宜 7.4. 優(yōu)化數(shù)據(jù)庫結(jié)構(gòu) 7.4.1. 設計選擇 7.4.2. 使你的數(shù)據(jù)盡可能小 7.4.3. 列索引 7.4.4. 多列索引 7.4.5. MySQL如何使用索引 7.4.6. MyISAM鍵高速緩沖 7.4.7. MyISAM索引統(tǒng)計集合 7.4.8. MySQL如何計算打開的表 7.4.9. MySQL如何打開和關閉表 7.4.10. 在同一個數(shù)據(jù)庫中創(chuàng)建多個表的缺陷 7.5. 優(yōu)化MySQL服務器 7.5.1. 系統(tǒng)因素和啟動參數(shù)的調(diào)節(jié) 7.5.2. 調(diào)節(jié)服務器參數(shù) 7.5.3. 控制查詢優(yōu)化器的性能 7.5.4. 編譯和鏈接怎樣影響MySQL的速度 7.5.5. MySQL如何使用內(nèi)存 7.5.6. MySQL如何使用DNS 7.6. 磁盤事宜 7.6.1. 使用符號鏈接 8. 客戶端和實用工具程序 8.1. 客戶端腳本和實用工具概述 8.2. myisampack:生成壓縮、只讀MyISAM表 8.3. mysql:MySQL命令行工具 8.3.1. 選項 8.3.2. mysql命令 8.3.3. 怎樣從文本文件執(zhí)行SQL語句 8.3.4. mysql技巧 8.4. mysqlaccess:用于檢查訪問權(quán)限的客戶端 8.5. mysqladmin:用于管理MySQL服務器的客戶端 8.6. mysqlbinlog:用于處理二進制日志文件的實用工具 8.7. mysqlcheck:表維護和維修程序 8.8. mysqldump:數(shù)據(jù)庫備份程序 8.9. mysqlhotcopy:數(shù)據(jù)庫備份程序 8.10. mysqlimport:數(shù)據(jù)導入程序 8.11. mysqlshow-顯示數(shù)據(jù)庫、表和列信息 8.12. myisamlog:顯示MyISAM日志文件內(nèi)容 8.13. perror:解釋錯誤代碼 8.14. replace:字符串替換實用工具 8.15. mysql_zap:殺死符合某一模式的進程 9. 語言結(jié)構(gòu) 9.1. 文字值 9.1.1. 字符串 9.1.2. 數(shù)值 9.1.3. 十六進制值 9.1.4. 布爾值 9.1.5. 位字段值 9.1.6. NULL值 9.2. 數(shù)據(jù)庫、表、索引、列和別名 9.2.1. 識別符限制條件 9.2.2. 識別符大小寫敏感性 9.3. 用戶變量 9.4. 系統(tǒng)變量 9.4.1. 結(jié)構(gòu)式系統(tǒng)變量 9.5. 注釋語法 9.6. MySQL中保留字的處理 10. 字符集支持 10.1. 常規(guī)字符集和校對 10.2. MySQL中的字符集和校對 10.3. 確定默認字符集和校對 10.3.1. 服務器字符集和校對 10.3.2. 數(shù)據(jù)庫字符集和校對 10.3.3. 表字符集和校對 10.3.4. 列字符集和校對 10.3.5. 字符集和校對分配示例 10.3.6. 連接字符集和校對 10.3.7. 字符串文字字符集和校對 10.3.8. 在SQL語句中使用COLLATE 10.3.9. COLLATE子句優(yōu)先 10.3.10. BINARY操作符 10.3.11. 校對確定較為復雜的一些特殊情況 10.3.12. 校對必須適合字符集 10.3.13. 校對效果的示例 10.4. 字符集支持影響到的操作 10.4.1. 結(jié)果字符串 10.4.2. CONVERT() 10.4.3. CAST() 10.4.4. SHOW語句 10.5. Unicode支持 10.6. 用于元數(shù)據(jù)的UTF8 10.7. 與其它DBMS的兼容性 10.8. 新字符集配置文件格式 10.9. 國家特有字符集 10.10. MySQL支持的字符集和校對 10.10.1. Unicode字符集 10.10.2. 西歐字符集 10.10.3. 中歐字符集 10.10.4. 南歐與中東字符集 10.10.5. 波羅的海字符集 10.10.6. 西里爾字符集 10.10.7. 亞洲字符集 11. 列類型 11.1. 列類型概述 11.1.1. 數(shù)值類型概述 11.1.2. 日期和時間類型概述 11.1.3. 字符串類型概述 11.2. 數(shù)值類型 11.3. 日期和時間類型 11.3.1. DATETIME、DATE和TIMESTAMP類型 11.3.2. TIME類型 11.3.3. YEAR類型 11.3.4. Y2K事宜和日期類型 11.4. String類型 11.4.1. CHAR和VARCHAR類型 11.4.2. BINARY和VARBINARY類型 11.4.3. BLOB和TEXT類型 11.4.4. ENUM類型 11.4.5. SET類型 11.5. 列類型存儲需求 11.6. 選擇正確的列類型 11.7. 使用來自其他數(shù)據(jù)庫引擎的列類型 12. 函數(shù)和操作符 12.1. 操作符 12.1.1. 操作符優(yōu)先級 12.1.2. 圓括號 12.1.3. 比較函數(shù)和操作符 12.1.4. 邏輯操作符 12.2. 控制流程函數(shù) 12.3. 字符串函數(shù) 12.3.1. 字符串比較函數(shù) 12.4. 數(shù)值函數(shù) 12.4.1. 算術(shù)操作符 12.4.2. 數(shù)學函數(shù) 12.5. 日期和時間函數(shù) 12.6. MySQL使用什么日歷? 12.7. 全文搜索功能 12.7.1. 布爾全文搜索 12.7.2. 全文搜索帶查詢擴展 12.7.3. 全文停止字 12.7.4. 全文限定條件 12.7.5. 微調(diào)MySQL全文搜索 12.8. Cast函數(shù)和操作符 12.9. 其他函數(shù) 12.9.1. 位函數(shù) 12.9.2. 加密函數(shù) 12.9.3. 信息函數(shù) 12.9.4. 其他函數(shù) NoName 12.10.1. GROUP BY(聚合)函數(shù) 12.10.2. GROUP BY修改程序 12.10.3. 具有隱含字段的GROUP BY 13. SQL語句語法 13.1. 數(shù)據(jù)定義語句 13.1.1. ALTER DATABASE語法 13.1.2. ALTER TABLE語法 13.1.3. CREATE DATABASE語法 13.1.4. CREATE INDEX語法 13.1.5. CREATE TABLE語法 13.1.6. DROP DATABASE語法 13.1.7. DROP INDEX語法 13.1.8. DROP TABLE語法 13.1.9. RENAME TABLE語法 13.2. 數(shù)據(jù)操作語句 13.2.1. DELETE語法 13.2.2. DO語法 13.2.3. HANDLER語法 13.2.4. INSERT語法 13.2.5. LOAD DATA INFILE語法 13.2.6. REPLACE語法 13.2.7. SELECT語法 13.2.8. Subquery語法 13.2.9. TRUNCATE語法 13.2.10. UPDATE語法 13.3. MySQL實用工具語句 13.3.1. DESCRIBE語法(獲取有關列的信息) 13.3.2. USE語法 13.4. MySQL事務處理和鎖定語句 13.4.1. START TRANSACTION 13.4.2. 不能回滾的語句 13.4.3. 會造成隱式提交的語句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT語法 13.4.5. LOCK TABLES和UNLOCK TABLES語法 13.4.6. SET TRANSACTION語法 13.4.7. XA事務 13.5. 數(shù)據(jù)庫管理語句 13.5.1. 賬戶管理語句 13.5.2. 表維護語句 13.5.3. SET語法 13.5.4. SHOW語法 13.5.5. 其它管理語句 13.6. 復制語句 13.6.1. 用于控制主服務器的SQL語句 13.6.2. 用于控制從服務器的SQL語句 13.7. 用于預處理語句的SQL語法 14. 插件式存儲引擎體系結(jié)構(gòu) 14.1. 前言 14.2. 概述 14.3. 公共MySQL數(shù)據(jù)庫服務器層 14.4. 選擇存儲引擎 14.5. 將存儲引擎指定給表 14.6. 存儲引擎和事務 14.7. 插入存儲引擎 14.8. 拔出存儲引擎 14.9. 插件式存儲器的安全含義 15. 存儲引擎和表類型 15.1. MyISAM存儲引擎 15.1.1. MyISAM啟動選項 15.1.2. 鍵所需的空間 15.1.3. MyISAM表的存儲格式 15.1.4. MyISAM表方面的問題 15.2. InnoDB存儲引擎 15.2.1. InnoDB概述 15.2.2. InnoDB聯(lián)系信息 15.2.3. InnoDB配置 15.2.4. InnoDB啟動選項 15.2.5. 創(chuàng)建InnoDB表空間 15.2.6. 創(chuàng)建InnoDB表 15.2.7. 添加和刪除InnoDB數(shù)據(jù)和日志文件 15.2.8. InnoDB數(shù)據(jù)庫的備份和恢復 15.2.9. 將InnoDB數(shù)據(jù)庫移到另一臺機器上 15.2.10. InnoDB事務模型和鎖定 15.2.11. InnoDB性能調(diào)節(jié)提示 15.2.12. 多版本的實施 15.2.13. 表和索引結(jié)構(gòu) 15.2.14. 文件空間管理和磁盤I/O 15.2.15. InnoDB錯誤處理 15.2.16. 對InnoDB表的限制 15.2.17. InnoDB故障診斷與排除 15.3. MERGE存儲引擎 15.3.1. MERGE表方面的問題 15.4. MEMORY (HEAP)存儲引擎 15.5. BDB (BerkeleyDB)存儲引擎 15.5.1. BDB支持的操作系統(tǒng) 15.5.2. 安裝BDB 15.5.3. BDB啟動選項 15.5.4. BDB表的特性 15.5.5. 修改BDB所需的事宜 15.5.6. 對BDB表的限制 15.5.7. 使用BDB表時可能出現(xiàn)的錯誤 15.6. EXAMPLE存儲引擎 15.7. FEDERATED存儲引擎 15.7.1. 安裝FEDERATED存儲引擎 15.7.2. FEDERATED存儲引擎介紹 15.7.3. 如何使用FEDERATED表 15.7.4. FEDERATED存儲引擎的局限性 15.8. ARCHIVE存儲引擎 15.9. CSV存儲引擎 15.10. BLACKHOLE存儲引擎 16. 編寫自定義存儲引擎 16.1. 前言 16.2. 概述 16.3. 創(chuàng)建存儲引擎源文件 NoName 16.5. 對處理程序進行實例化處理 16.6. 定義表擴展 16.7. 創(chuàng)建表 16.8. 打開表 16.9. 實施基本的表掃描功能 16.9.1. 實施store_lock()函數(shù) 16.9.2. 實施external_lock()函數(shù) 16.9.3. 實施rnd_init()函數(shù) 16.9.4. 實施info()函數(shù) 16.9.5. 實施extra()函數(shù) 16.9.6. 實施rnd_next()函數(shù) 16.10. 關閉表 NoName NoName NoName 16.14. API引用 16.14.1. bas_ext 16.14.2. close 16.14.3. create 16.14.4. delete_row 16.14.5. delete_table 16.14.6. external_lock 16.14.7. extra 16.14.8. info 16.14.9. open 16.14.10. rnd_init 16.14.11. rnd_next 16.14.12. store_lock 16.14.13. update_row 16.14.14. write_row 17. MySQL簇 17.1. MySQL簇概述 17.2. MySQL簇的基本概念 17.3. 多計算機的簡單基礎知識 17.3.1. 硬件、軟件和聯(lián)網(wǎng) 17.3.2. 安裝 17.3.3. 配置 17.3.4. 首次啟動 17.3.5. 加載示例數(shù)據(jù)并執(zhí)行查詢 17.3.6. 安全關閉和重啟 17.4. MySQL簇的配置 17.4.1. 從源碼創(chuàng)建MySQL簇 17.4.2. 安裝軟件 17.4.3. MySQL簇的快速測試設置 17.4.4. 配置文件 17.5. MySQL簇中的進程管理 17.5.1. 用于MySQL簇的MySQL服務器進程使用 17.5.2. ndbd,存儲引擎節(jié)點進程 17.5.3. ndb_mgmd,“管理服務器”進程 17.5.4. ndb_mgm,“管理客戶端”進程 17.5.5. 用于MySQL簇進程的命令選項 17.6. MySQL簇的管理 17.6.1. MySQL簇的啟動階段 17.6.2. “管理客戶端”中的命令 17.6.3. MySQL簇中生成的事件報告 17.6.4. 單用戶模式 17.6.5. MySQL簇的聯(lián)機備份 17.7. 使用與MySQL簇的高速互連 17.7.1. 配置MySQL簇以使用SCI套接字 17.7.2. 理解簇互連的影響 17.8. MySQL簇的已知限制 17.9. MySQL簇發(fā)展的重要歷程 17.9.1. MySQL 5.0中的MySQL簇變化 17.9.2. 關于MySQL簇的MySQL 5.1發(fā)展歷程 17.10. MySQL簇常見問題解答 17.11. MySQL簇術(shù)語表 18. 分區(qū) 18.1. MySQL中的分區(qū)概述 18.2. 分區(qū)類型 18.2.1. RANGE分區(qū) 18.2.2. LIST分區(qū) 18.2.3. HASH分區(qū) 18.2.4. KEY分區(qū) 18.2.5. 子分區(qū) 18.2.6. MySQL分區(qū)處理NULL值的方式 18.3. 分區(qū)管理 18.3.1. RANGE和LIST分區(qū)的管理 18.3.2. HASH和KEY分區(qū)的管理 18.3.3. 分區(qū)維護 18.3.4. 獲取關于分區(qū)的信息 19. MySQL中的空間擴展 19.1. 前言 19.2. OpenGIS幾何模型 19.2.1. Geometry類的層次 19.2.2. 類Geometry 19.2.3. 類Point 19.2.4. 類Curve 19.2.5. 類LineString 19.2.6. 類Surface 19.2.7. 類Polygon 19.2.8. 類GeometryCollection 19.2.9. 類MultiPoint 19.2.10. 類MultiCurve 19.2.11. 類MultiLineString 19.2.12. 類MultiSurface 19.2.13. 類MultiPolygon 19.3. 支持的空間數(shù)據(jù)格式 19.3.1. 著名的文本(WKT)格式 19.3.2. 著名的二進制(WKB)格式 19.4. 創(chuàng)建具備空間功能的MySQL數(shù)據(jù)庫 19.4.1. MySQL空間數(shù)據(jù)類型 19.4.2. 創(chuàng)建空間值 19.4.3. 創(chuàng)建空間列 19.4.4. 填充空間列 19.4.5. 獲取空間數(shù)據(jù) 19.5. 分析空間信息 19.5.1. Geometry格式轉(zhuǎn)換函數(shù) 19.5.2. Geometry函數(shù) 19.5.3. 從已有Geometry創(chuàng)建新Geometry的函數(shù) 19.5.4. 測試幾何對象間空間關系的函數(shù) 19.5.5. 關于幾何最小邊界矩形(MBR)的關系 19.5.6. 測試幾何類之間空間關系的函數(shù) 19.6. 優(yōu)化空間分析 19.6.1. 創(chuàng)建空間索引 19.6.2. 使用空間索引 19.7. MySQL的一致性和兼容性 19.7.1. 尚未實施的GIS特性 20. 存儲程序和函數(shù) 20.1. 存儲程序和授權(quán)表 20.2. 存儲程序的語法 20.2.1. CREATE PROCEDURE和CREATE FUNCTION 20.2.2. ALTER PROCEDURE和ALTER FUNCTION 20.2.3. DROP PROCEDURE和DROP FUNCTION 20.2.4.SHOW CREATE PROCEDURE和SHOW CREATE FUNCTION 20.2.5.SHOW PROCEDURE STATUS和SHOW FUNCTION STATUS 20.2.6. CALL語句 20.2.7. BEGIN ... END復合語句 20.2.8. DECLARE語句 20.2.9. 存儲程序中的變量 20.2.10. 條件和處理程序 20.2.11. 光標 20.2.12. 流程控制構(gòu)造 20.3. 存儲程序、函數(shù)、觸發(fā)程序和復制:常見問題 20.4. 存儲子程序和觸發(fā)程序的二進制日志功能 21. 觸發(fā)程序 21.1. CREATE TRIGGER語法 21.2. DROP TRIGGER語法 21.3. 使用觸發(fā)程序 22. 視圖 22.1. ALTER VIEW語法 22.2. CREATE VIEW語法 22.3. DROP VIEW語法 22.4. SHOW CREATE VIEW語法 23. INFORMATION_SCHEMA信息數(shù)據(jù)庫 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表 NoName 24. 精度數(shù)學 24.1. 數(shù)值的類型 24.2. DECIMAL數(shù)據(jù)類型更改 24.3. 表達式處理 24.4. 四舍五入 24.5. 精度數(shù)學示例 25. API和庫 25.1. libmysqld,嵌入式MySQL服務器庫 25.1.1. 嵌入式MySQL服務器庫概述 25.1.2. 使用libmysqld編譯程序 25.1.3. 使用嵌入式MySQL服務器時的限制 25.1.4. 與嵌入式服務器一起使用的選項 25.1.5. 嵌入式服務器中尚需完成的事項(TODO) 25.1.6. 嵌入式服務器示例 25.1.7. 嵌入式服務器的許可 25.2. MySQL C API 25.2.1. C API數(shù)據(jù)類型 25.2.2. C API函數(shù)概述 25.2.3. C API函數(shù)描述 25.2.4. C API預處理語句 25.2.5. C API預處理語句的數(shù)據(jù)類型 25.2.6. C API預處理語句函數(shù)概述 25.2.7. C API預處理語句函數(shù)描述 25.2.8. C API預處理語句方面的問題 25.2.9. 多查詢執(zhí)行的C API處理 25.2.10. 日期和時間值的C API處理 25.2.11. C API線程函數(shù)介紹 25.2.12. C API嵌入式服務器函數(shù)介紹 25.2.13. 使用C API時的常見問題 25.2.14. 創(chuàng)建客戶端程序 25.2.15. 如何生成線程式客戶端 25.3. MySQL PHP API 25.3.1. 使用MySQL和PHP的常見問題 25.4. MySQL Perl API 25.5. MySQL C++ API 25.5.1. Borland C++ 25.6. MySQL Python API 25.7. MySQL Tcl API 25.8. MySQL Eiffel Wrapper 25.9. MySQL程序開發(fā)實用工具 25.9.1. msql2mysql:轉(zhuǎn)換mSQL程序以用于MySQL 25.9.2. mysql_config:獲取編譯客戶端的編譯選項 26. 連接器 26.1. MySQL Connector/ODBC 26.1.1. MyODBC介紹 26.1.2. 關于ODBC和MyODBC的一般信息 26.1.3. 如何安裝MyODBC 26.1.4. 在Windows平臺上從二進制版本安裝MyODBC 26.1.5. I在Unix平臺上從二進制版本安裝MyODBC 26.1.6. 在Windows平臺上從源碼版本安裝MyODBC 26.1.7. 在Unix平臺上從源碼版本安裝MyODBC 26.1.8. 從BitKeeper開發(fā)源碼樹安裝MyODBC 26.1.9. MyODBC配置 26.1.10. 與MyODBC連接相關的事宜 26.1.11. MyODBC和Microsoft Access 26.1.12. MyODBC和Microsoft VBA及ASP 26.1.13. MyODBC和第三方ODBC工具 26.1.14. MyODBC通用功能 26.1.15. 基本的MyODBC應用步驟 26.1.16. MyODBC API引用 26.1.17. MyODBC數(shù)據(jù)類型 26.1.18. MyODBC錯誤代碼 26.1.19. MyODBC與VB:ADO、DAO和RDO 26.1.20. MyODBC與Microsoft.NET 26.1.21. 感謝 26.2. MySQL Connector/NET 26.2.1. 前言 26.2.2. 下載并安裝MySQL Connector/NET 26.2.3. Connector/NET體系結(jié)構(gòu) 26.2.4. 使用MySQL Connector/NET 26.2.5. MySQL Connector/NET變更史 26.3. MySQL Connector/J 26.3.1. 基本的JDBC概念 26.3.2. 安裝 Connector/J 26.3.3. JDBC引用 26.3.4. 與J2EE和其他Java框架一起使用 Connector/J 26.3.5. 診斷 Connector/J方面的問題 26.3.6. Changelog 26.4. MySQL Connector/MXJ 26.4.1. 前言 26.4.2. 支持平臺: 26.4.3. Junit測試要求 26.4.4. 運行Junit測試 26.4.5. 作為JDBC驅(qū)動程序的一部分運行 26.4.6. 在Java對象中運行 26.4.7. MysqldResource API 26.4.8. 在JMX代理(custom)中運行 26.4.9. 部署在標準的JMX代理環(huán)境下 (JBoss) 26.4.10. 安裝 27. 擴展MySQL 27.1. MySQL內(nèi)部控件 27.1.1. MySQL線程 27.1.2. MySQL測試套件 27.2. 為MySQL添加新函數(shù) 27.2.1. 自定義函數(shù)接口的特性 27.2.2. CREATE FUNCTION/DROP FUNCTION語法 27.2.3. 添加新的自定義函數(shù) 27.2.4. 添加新的固有函數(shù) 27.3. 為MySQL添加新步驟 27.3.1. 步驟分析 27.3.2. 編寫步驟 A. 問題和常見錯誤 A.1. 如何確定導致問題的原因 A.2. 使用MySQL程序時的常見錯誤 A.2.1. 拒絕訪問 A.2.2. 無法連接到[local] MySQL服務器 A.2.3. 客戶端不支持鑒定協(xié)議 A.2.4. 輸入密碼時出現(xiàn)密碼錯誤 NoName A.2.6. 連接數(shù)過多 A.2.7. 內(nèi)存溢出 A.2.8. MySQL服務器不可用 A.2.9. 信息包過大 A.2.10. 通信錯誤和失效連接 A.2.11. 表已滿 A.2.12. 無法創(chuàng)建文件/寫入文件 A.2.13. 命令不同步 A.2.14. 忽略用戶 A.2.15. 表tbl_name不存在 A.2.16. 無法初始化字符集 A.2.17. 文件未找到 A.3. 與安裝有關的事宜 A.3.1. 與MySQL客戶端庫的鏈接問題 A.3.2. 如何以普通用戶身份運行MySQL A.3.3. 與文件許可有關的問題 A.4. 與管理有關的事宜 A.4.1. 如何復位根用戶密碼 A.4.2. 如果MySQL依然崩潰,應作些什么 A.4.3. MySQL處理磁盤滿的方式 A.4.4. MySQL將臨時文件儲存在哪里 A.4.5. 如何保護或更改MySQL套接字文件/tmp/mysql.sock A.4.6. 時區(qū)問題 A.5. 與查詢有關的事宜 A.5.1. 搜索中的大小寫敏感性 A.5.2. 使用DATE列方面的問題 A.5.3. 與NULL值有關的問題 A.5.4. 與列別名有關的問題 A.5.5. 非事務表回滾失敗 A.5.6. 從相關表刪除行 A.5.7. 解決與不匹配行有關的問題 A.5.8. 與浮點比較有關的問題 A.6. 與優(yōu)化器有關的事宜 A.7. 與表定義有關的事宜 A.7.1. 與ALTER TABLE有關的問題 A.7.2. 如何更改表中的列順序 A.7.3. TEMPORARY TABLE問題 A.8. MySQL中的已知事宜 A.8.1. MySQL中的打開事宜 B. 錯誤代碼和消息 B.1. 服務器錯誤代碼和消息 B.2. 客戶端錯誤代碼和消息 C. 感謝 C.1. MySQL AB處的開發(fā)人 C.2. MySQL貢獻人 C.3. 資料員和譯員 C.4. MySQL使用和包含的庫 C.5. 支持MySQL的軟件包 C.6. 用于創(chuàng)建MySQL的工具 C.7. MySQL支持人員 D. MySQL變更史 D.1. 5.1.x版中的變更情況(開發(fā)) D.1.1. 5.1.2版中的變更情況(尚未發(fā)布) D.1.2. 5.1.1版中的變更情況(尚未發(fā)布) D.2. MyODBC的變更情況 D.2.1. MyODBC 3.51.12的變更情況 D.2.2. MyODBC 3.51.11的變更情況 E. 移植到其他系統(tǒng) E.1. 調(diào)試MySQL服務器 E.1.1. 針對調(diào)試編譯MySQL E.1.2. 創(chuàng)建跟蹤文件 E.1.3. 在gdb環(huán)境下調(diào)試mysqld E.1.4. 使用堆棧跟蹤 E.1.5. 使用日志文件找出mysqld中的錯誤原因 E.1.6. 如果出現(xiàn)表崩潰,請生成測試案例 E.2. 調(diào)試MySQL客戶端 E.3. DBUG軟件包 E.4. 關于RTS線程的注釋 E.5. 線程軟件包之間的差異 F. 環(huán)境變量 G. MySQL正則表達式 H. MySQL中的限制 H.1. 聯(lián)合的限制 I. 特性限制 I.1. 對存儲子程序和觸發(fā)程序的限制 I.2. 對服務器端光標的限制 I.3. 對子查詢的限制 I.4. 對視圖的限制 I.5. 對XA事務的限制 J. GNU通用公共許可 K. MySQL FLOSS許可例外 索引
characters

第23章:INFORMATION_SCHEMA信息數(shù)據(jù)庫

目錄

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提供了訪問數(shù)據(jù)庫元數(shù)據(jù)的方式。

元數(shù)據(jù)是關于數(shù)據(jù)的數(shù)據(jù),如數(shù)據(jù)庫名或表名,列的數(shù)據(jù)類型,或訪問權(quán)限等。有些時候用于表述該信息的其他術(shù)語包括“數(shù)據(jù)詞典”和“系統(tǒng)目錄”。

例如:

mysql> SELECT table_name, table_type, engine
-> FROM information_schema.tables
-> WHERE table_schema = 'db5'
-> ORDER BY table_name DESC;
?table_name(表名)
?table_type(表類型)
?引擎
?v56? 
?VIEW(視圖)
?NULL
?v3

VIEW(視圖)

?NULL
?v2

VIEW(視圖)

?NULL
?v

VIEW(視圖)

?NULL
?tables 
?BASE TABLE(基本表)
?MyISAM 
?t7
?BASE TABLE(基本表)
?MyISAM 
?t3
?BASE TABLE(基本表)
?MyISAM 
?t2
?BASE TABLE(基本表)
?MyISAM 
?t
?BASE TABLE(基本表)
?MyISAM 
?pk
?BASE TABLE(基本表)
?InnoDB 
?loop 
?BASE TABLE(基本表)
?MyISAM 
?kurs 
?BASE TABLE(基本表)
?MyISAM 
?k
?BASE TABLE(基本表)
?MyISAM 
?into 
?BASE TABLE(基本表)
?MyISAM 
?goto 
?BASE TABLE(基本表)
?MyISAM 
?fk2? 
?BASE TABLE(基本表)
?InnoDB 
?fk
?BASE TABLE(基本表)
?InnoDB 
集合中含17行(0.01秒)。

解釋:該語句請求按逆向字母順序列出數(shù)據(jù)庫db5中的所有表,但僅顯示三種信息:表名,表類型,以及表引擎。

INFORMATION_SCHEMA是信息數(shù)據(jù)庫,其中保存著關于MySQL服務器所維護的所有其他數(shù)據(jù)庫的信息。在INFORMATION_SCHEMA中,有數(shù)個只讀表。它們實際上是視圖,而不是基本表,因此,你將無法看到與之相關的任何文件。

每位MySQL用戶均有權(quán)訪問這些表,但僅限于表中的特定行,在這類行中含有用戶具有恰當訪問權(quán)限的對象。

SELECT的優(yōu)點

SELECT ... FROM INFORMATION_SCHEMA語句的目的在于提供一種更為一致的方式,以訪問MySQL所支持的各種SHOW語句(SHOW DATABASES、SHOW TABLES等等)提供的信息。與SHOW相比,使用SELECT有多項優(yōu)點“

·???????? 符合Codd規(guī)則。也就是說,所有訪問均是在表上進行的。

·???????? 不需要了解新語句的語法。由于他們已知道SELECT的工作方式,僅需了解對象名即可。

·???????? 實現(xiàn)人無需操心增加關鍵詞方面的事宜。

·???????? 有數(shù)百萬種可能的輸出變化,而不是一種。這樣,就為對元數(shù)據(jù)有不同需求的應用程序提供了更高的靈活性。

·???????? 由于其他DBMS也采用了這類方式,移植更為容易。

然而,由于SHOW在MySQL的雇員和用戶中十分流行,如果SHOW消失,可能會導致混亂,因此傳統(tǒng)的語法方式無法給出消除SHOW的足夠理由。事實上,在MySQL 5.1中,還對SHOW進行了多項增強。關于這方面的介紹,請參見23.2節(jié),“SHOW語句的擴展”。

標準

在MySQL中,INFORMATION_SCHEMA表結(jié)構(gòu)的實施遵從ANSI/ISO SQL:2003標準,第11部分綱要”。我們的目的在于,獲得與SQL:2003核心特性F021“基本信息方案”的近似兼容。

SQL服務器2000(也遵從該標準)的用戶可能已注意到它們高度的相似性。但是,MySQL略去了與我們的實施方式不相關的眾多列,并添加了一些MySQL特有的列。其中一種列就是INFORMATION_SCHEMA.TABLES表中的引擎列。

盡管其他DBMS使用了不同的名稱,如syscat或系統(tǒng),但標準名稱是INFORMATION_SCHEMA。

事實上,盡管不需要生成名為INFORMATION_SCHEMA的文件,我們?nèi)蕴峁┝嗣麨镮NFORMATION_SCHEMA的新數(shù)據(jù)庫。可以使用USE語句將INFORMATION_SCHEMA選擇為默認數(shù)據(jù)庫,但訪問該數(shù)據(jù)庫中所含表的唯一方式是使用SELECT語句。不能在其中插入內(nèi)容,不能更新它們,也不能刪除其中的內(nèi)容。

權(quán)限

當前權(quán)限(SHOW)要求和SELCET權(quán)限要求不存在差別。在任何一種情況下,要想查看關于它的信息,需要對某類對象擁有特定權(quán)限。

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表

下述章節(jié)說明

在下面的章節(jié)中,我們選擇了INFORMATION_SCHEMA中的表和列。對于每一列,有三類信息:

·???????? “標準名稱”:指明了列的標準SQL名稱。

·???????? “SHOW名稱”:指明了最近SHOW語句中的等效字段名,如果有的話。

·???????? “注釋”給出了適用的附加信息。

為了避免使用標準或DB2、SQL服務器或Oracle中保留的名稱,我們更改了標注為“SQL擴展”的列名。(例如,在TABLES表中,我們將COLLATION改為TABLE_COLLATION)。請參見本文末尾處給出的保留字列表。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表

該方案是數(shù)據(jù)庫,因此SCHEMATA表提供了關于數(shù)據(jù)庫的信息。

標準名稱

SHOW名稱

注釋

CATALOG_NAME

-

NULL

SCHEMA_NAME

?

Database

DEFAULT_CHARACTER_SET_NAME

?

?

DEFAULT_COLLATION_NAME

?

?

SQL_PATH

?

NULL

注釋: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表給出了關于數(shù)據(jù)庫中的表的信息。

標準名稱

SHOW名稱

注釋

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

Table_...

?

TABLE_NAME

Table_...

?

TABLE_TYPE

?

?

ENGINE

Engine

MySQL擴展

VERSION

Version

MySQL擴展

ROW_FORMAT

Row_format

MySQL擴展

TABLE_ROWS

Rows

MySQL擴展

AVG_ROW_LENGTH

Avg_row_length

MySQL擴展

DATA_LENGTH

Data_length

MySQL擴展

MAX_DATA_LENGTH

Max_data_length

MySQL擴展

INDEX_LENGTH

Index_length

MySQL擴展

DATA_FREE

Data_free

MySQL擴展

AUTO_INCREMENT

Auto_increment

MySQL擴展

CREATE_TIME

Create_time

MySQL擴展

UPDATE_TIME

Update_time

MySQL擴展

CHECK_TIME

Check_time

MySQL擴展

TABLE_COLLATION

Collation

MySQL擴展

CHECKSUM

Checksum

MySQL擴展

CREATE_OPTIONS

Create_options

MySQL擴展

TABLE_COMMENT

Comment

MySQL擴展

注釋:

·???????? TABLE_SCHEMATABLE_NAMESHOW顯示中的單個字段,例如Table_in_db1。

·???????? TABLE_TYPE(表類型)應是BASE TABLE(基本表)VIEW(視圖)。如果表是臨時性的,TABLE_TYPE = TEMPORARY。(沒有臨時視圖,因此,因此不存在歧義)。

·???????? 如果表位于INFORMATION_SCHEMA數(shù)據(jù)庫中,TABLE_ROWS列為NULL。對于InnoDB表,在SQL優(yōu)化中,行計數(shù)僅是大概估計值。

·???????? 沒有關于表默認字符集的任何信息。TABLE_COLLATION處于關閉狀態(tài),原因在于校對名稱以字符集名稱開頭。

下述語句是等效的:

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表給出了表中的列信息。

標準名稱

SHOW名稱

注釋

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

COLUMN_NAME

Field

?

ORDINAL_POSITION

?

參見注釋

COLUMN_DEFAULT

Default

?

IS_NULLABLE

Null

?

DATA_TYPE

Type

?

CHARACTER_MAXIMUM_LENGTH

Type

?

CHARACTER_OCTET_LENGTH

?

?

NUMERIC_PRECISION

Type

?

NUMERIC_SCALE

Type

?

CHARACTER_SET_NAME

?

?

COLLATION_NAME

Collation

?

COLUMN_TYPE

Type

MySQL擴展

COLUMN_KEY

Key

MySQL擴展

EXTRA

Extra

MySQL擴展

COLUMN_COMMENT

Comment

MySQL擴展

注釋:

·???????? SHOW中,類型顯示包括來自數(shù)個不同COLUMNS列的值。

·???????? ORDINAL_POSITION有必要,這是因為,你可能會在某一天需要ORDER BY ORDINAL_POSITION(按ORDINAL_POSITION排序)。不同于SHOW,SELECT沒有自動排序功能。

·???????? CHARACTER_OCTET_LENGTH應與CHARACTER_MAXIMUM_LENGTH相同,但多字節(jié)字符集除外。

·???????? 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表給出了關于表索引的信息。

標準名稱

SHOW名稱

注釋

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

=數(shù)據(jù)庫

TABLE_NAME

Table

?

NON_UNIQUE

Non_unique

?

INDEX_SCHEMA

?

=數(shù)據(jù)庫

INDEX_NAME

Key_name

?

SEQ_IN_INDEX

Seq_in_index

?

COLUMN_NAME

Column_name

?

COLLATION

Collation

?

CARDINALITY

Cardinality

?

SUB_PART

Sub_part

MySQL擴展

PACKED

Packed

MySQL擴展

NULLABLE

Null

MySQL擴展

INDEX_TYPE

Index_type

MySQL擴展

COMMENT

Comment

MySQL擴展

注釋:

·???????? 沒有關于這些索引的標準表。上面的列表與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(用戶權(quán)限)表給出了關于全程權(quán)限的信息。該信息源自mysql.user授權(quán)表。

標準名稱

SHOW名稱

注釋

GRANTEE

?

例如“user'@'host”

TABLE_CATALOG

?

NULL

PRIVILEGE_TYPE

?

?

IS_GRANTABLE

?

?

注釋:

·???????? 這是一個非標準表。其值來自mysql.user表。

23.1.6.?INFORMATION_SCHEMA SCHEMA_PRIVILEGES表

SCHEMA_PRIVILEGES(方案權(quán)限)表給出了關于方案(數(shù)據(jù)庫)權(quán)限的信息。該信息來自mysql.db授權(quán)表。

標準名稱

SHOW名稱

注釋

GRANTEE

?

例如“user'@'host”

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

?

PRIVILEGE_TYPE

?

?

IS_GRANTABLE

?

?

注釋:

·???????? 這是一個非標準表。其值來自mysql.db表。

23.1.7.?INFORMATION_SCHEMA TABLE_PRIVILEGES表

TABLE_PRIVILEGES(表權(quán)限)表給出了關于表權(quán)限的信息。該信息源自mysql.tables_priv授權(quán)表。

標準名稱

SHOW名稱

注釋

GRANTEE

?

例如“user'@'host”

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

PRIVILEGE_TYPE

?

?

IS_GRANTABLE

?

?

下述語句不等效:

SELECT ... FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
?
SHOW GRANTS ...

PRIVILEGE_TYPE可以包含這些值之一(僅能一個):SELECT、INSERT、UPDATE、REFERENCES、ALTERINDEX、DROP、CREATE VIEW

23.1.8.?INFORMATION_SCHEMA COLUMN_PRIVILEGES表

COLUMN_PRIVILEGES(列權(quán)限)表給出了關于列權(quán)限的信息。該信息源自mysql.columns_priv授權(quán)表。

標準名稱

SHOW名稱

注釋

GRANTEE

?

例如“user'@'host”

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

COLUMN_NAME

?

?

PRIVILEGE_TYPE

?

?

IS_GRANTABLE

?

?

注釋:

·???????? SHOW FULL COLUMNS(顯示完整列)的輸出中,權(quán)限值位于一個字段并采用小寫形式,例如select、insert、update、references。COLUMN_PRIVILEGES中,每種權(quán)限占一行,并為大寫形式。

·???????? PRIVILEGE_TYPE可以包含這些值之一(僅能一個):SELECT, INSERT, UPDATE, REFERENCES.

·???????? 如果用戶有GRANT OPTION權(quán)限,那么IS_GRANTABLE應為YES。否則,IS_GRANTABLE應為NO。在輸出中,不會將GRANT OPTION作為單獨權(quán)限列出。

下述語句不等效:

SELECT ... FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
?
SHOW GRANTS ...

23.1.9.?INFORMATION_SCHEMA CHARACTER_SETS表

CHARACTER_SETS(字符集)表提供了關于可用字符集的信息。

標準名稱

SHOW名稱

注釋

CHARACTER_SET_NAME

Charset

?

DEFAULT_COLLATE_NAME

Default collation

?

DESCRIPION

Description

MySQL擴展

MAXLEN

Maxlen

MySQL擴展

注釋:

·???????? 我們增加了兩個非標準列,分別對應于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表提供了關于各字符集的對照信息。

標準名稱

SHOW名稱

注釋

COLLATION_NAME

Collation

?

注釋:

·???????? 我們增加了5個非標準列,分別對應于SHOW COLLATION輸出的Charset、Id、Default、CompiledSortlen列。

下述語句是等效的:

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的前兩個顯示字段。

標準名稱

SHOW名稱

注釋

COLLATION_NAME

Collation

?

CHARACTER_SET_NAME

Charset

?

23.1.12.?INFORMATION_SCHEMA TABLE_CONSTRAINTS表

TABLE_CONSTRAINTS表描述了存在約束的表。

標準名稱

SHOW名稱

注釋

CONSTRAINT_CATALOG

?

NULL

CONSTRAINT_SCHEMA

?

?

CONSTRAINT_NAME

?

?

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

CONSTRAINT_TYPE

?

?

注釋:

·???????? CONSTRAINT_TYPE的值可以是UNIQUE(唯一)、PRIMARY KEY(主鍵)FOREIGN KEY(外鍵)。

·???????? Non_unique字段為0時,UNIQUEPRIMARY KEY信息與SHOW INDEX輸出的Key_name字段中給出的信息基本相同。

·???????? CONSTRAINT_TYPE列可包含下述值之一:UNIQUEPRIMARY KEY、FOREIGN KEY、CHECK。這是一個CHAR(非ENUM)列。在我們支持CHECK前,CHECK值不可用。

23.1.13.?INFORMATION_SCHEMA KEY_COLUMN_USAGE表

KEY_COLUMN_USAGE表描述了具有約束的鍵列。

標準名稱

SHOW名稱

注釋

CONSTRAINT_CATALOG

?

NULL

CONSTRAINT_SCHEMA

?

?

CONSTRAINT_NAME

?

?

TABLE_CATALOG

?

?

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

COLUMN_NAME

?

?

ORDINAL_POSITION

?

?

POSITION_IN_UNIQUE_CONSTRAINT

?

?

REFERENCED_TABLE_SCHEMA

?

?

REFERENCED_TABLE_NAME

?

?

REFERENCED_COLUMN_NAME

?

?

注釋:

·???????? 如果約束為外鍵,這就是外鍵列,而不是外鍵引用的列。

·???????? ORDINAL_POSITION的值是列在約束中的位置,而不是列在表中的位置。列位置采用從1開始的數(shù)值編號。

·???????? 對于“唯一”和“主鍵”約束,POSITION_IN_UNIQUE_CONSTRAINT的值為NULL。對于“外鍵”約束,它是所引用表內(nèi)鍵中的順序位置。

例如,假定有兩個具有下述定義的表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表提供了關于存儲子程序(存儲程序和函數(shù))的信息。此時,ROUTINES表不包含自定義函數(shù)(UDF)。

名為“mysql.proc name”的列指明了對應于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列,如果有的話。

標準名稱

mysql.proc

注釋

SPECIFIC_NAME

specific_name

?

ROUTINE_CATALOG

?

NULL

ROUTINE_SCHEMA

db

?

ROUTINE_NAME

name

?

ROUTINE_TYPE

type

{PROCEDURE|FUNCTION}

DTD_IDENTIFIER

?

(數(shù)據(jù)類型描述符)

ROUTINE_body

?

SQL

ROUTINE_DEFINITION

body

?

EXTERNAL_NAME

?

NULL

EXTERNAL_LANGUAGE

language

NULL

PARAMETER_STYLE

?

SQL

IS_DETERMINISTIC

is_deterministic

?

SQL_DATA_ACCESS

sql_data_access

?

SQL_PATH

?

NULL

SECURITY_TYPE

security_type

?

CREATED

created

?

LAST_ALTERED

modified

?

SQL_MODE

sql_mode

MySQL擴展

ROUTINE_COMMENT

comment

MySQL擴展

DEFINER

definer

MySQL擴展

注釋:

·???????? MySQL計算EXTERNAL_LANGUAGE,因此:

o??????? 如果mysql.proc.language='SQL',那么EXTERNAL_LANGUAGENULL

o??????? 否則,EXTERNAL_LANGUAGEmysql.proc.language中的值。然而,由于尚沒有外部語言,因此該值總為NULL。

23.1.15.?INFORMATION_SCHEMA VIEWS表

VIEWS表給出了關于數(shù)據(jù)庫中的視圖的信息。

標準名稱

SHOW名稱

注釋

TABLE_CATALOG

?

NULL

TABLE_SCHEMA

?

?

TABLE_NAME

?

?

VIEW_DEFINITION

?

?

CHECK_OPTION

?

?

IS_UPDATABLE

?

?

DEFINER

?

?

SECURITY_TYPE

?

?

注釋:

·???????? 有一種新的權(quán)限SHOW VIEW,如果沒有它,將無法看到VIEWS表。

·???????? VIEW_DEFINITION列含有你在SHOW CREATE VIEW所生成的Create Table字段中見到的大多數(shù)信息。跳過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的值為DEFINERINVOKER。

23.1.16.?INFORMATION_SCHEMA TRIGGERS表

TRIGGERS表提供了關于觸發(fā)程序的信息。

必須有SUPER權(quán)限才能查看該表。

標準名稱

SHOW名稱

注釋

TRIGGER_CATALOG

?

NULL

TRIGGER_SCHEMA

?

?

TRIGGER_NAME

Trigger

?

EVENT_MANIPULATION

Event

?

EVENT_OBJECT_CATALOG

?

NULL

EVENT_OBJECT_SCHEMA

?

?

EVENT_OBJECT_TABLE

Table

?

ACTION_ORDER

?

0

ACTION_CONDITION

?

NULL

ACTION_STATEMENT

Statement

?

ACTION_ORIENTATION

?

ROW

ACTION_TIMING

Timing

?

ACTION_REFERENCE_OLD_TABLE

?

NULL

ACTION_REFERENCE_NEW_TABLE

?

NULL

ACTION_REFERENCE_OLD_ROW

?

OLD

ACTION_REFERENCE_NEW_ROW

?

NEW

CREATED

?

NULL (0)

SQL_MODE

?

?

注釋:

·???????? TRIGGER_SCHEMATRIGGER_NAME列中分別含有相應數(shù)據(jù)庫的名稱以及觸發(fā)程序的名稱,在該數(shù)據(jù)庫中,含有該觸發(fā)程序。

·???????? EVENT_MANIPULATION列含有下述值之一:INSERT、DELETE、或UPDATE。

·???????? 正如第21章:觸發(fā)程序中指出的那樣,每個觸發(fā)程序均與一個表準確相關。EVENT_OBJECT_SCHEMAEVENT_OBJECT_TABLE列包含相應的數(shù)據(jù)庫和表名,在該數(shù)據(jù)庫中,含有該表。

·???????? ACTION_ORDER語句含有觸發(fā)程序動作(在相同表上所有類似觸發(fā)程序列表中)的順序位置。目前該值總為0,這是因為在相同表上具有相同EVENT_MANIPULATIONACTION_TIMING的觸發(fā)程序不能超過1個。

·???????? ACTION_STATEMENT列含有激活了觸發(fā)程序時將要執(zhí)行的語句。這與SHOW TRIGGERS輸出的Statement(語句)列中顯示的文本相同。注意,該文本采用了UTF-8編碼方式。

·???????? ACTION_ORIENTATION列總含有值“ROW

·???????? ACTION_TIMING列含有下述兩種值之一:BEFOREAFTER。

·???????? ACTION_REFERENCE_OLD_ROWACTION_REFERENCE_NEW_ROW分別含有舊的和新的列標識符。這意味著ACTION_REFERENCE_OLD_ROW總含有值“OLD,ACTION_REFERENCE_NEW_ROW總含有值“NEW

·???????? SQL_MODE列顯示了創(chuàng)建觸發(fā)程序時有效的服務器SQL模式(無論當前的服務器SQL模式為何,只要激活了觸發(fā)程序,它將保持有效)。該列的可能取值范圍與sql_mode系統(tǒng)變量的取值范圍相同。請參見5.3.2節(jié),“SQL服務器模式”。

·???????? 在下述列中,目前總含有NULL:TRIGGER_CATALOG,EVENT_OBJECT_CATALOG,ACTION_CONDITION,ACTION_REFERENCE_OLD_TABLE,ACTION_REFERENCE_NEW_TABLECREATED

例如,使用21.3節(jié),“使用觸發(fā)程序”中定義的觸發(fā)程序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節(jié),“SHOW TRIGGERS語法”。

23.1.17.?其他INFORMATION_SCHEMA表

我們打算實施附加的INFORMATION_SCHEMA表。尤其是,我們確認了對INFORMATION_SCHEMA.PARAMETERSINFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS的需求。

23.2.?SHOW語句的擴展

某些SHOW語句的擴展伴隨著INFORMATION_SCHEMA的實施:

·???????? SHOW可用于獲取關于INFORMATION_SCHEMA本身結(jié)構(gòu)的信息。

·???????? 一些SHOW語句允許使用WHERE子句,這樣,在指定需要顯示的行時,可更為靈活。

INFORMATION_SCHEMA是一種信息數(shù)據(jù)庫,因此,在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 COLUMNSDESCRIBE能夠顯示單獨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子句的話,將根據(jù)SHOW語句顯示的列名進行計算。例如,SHOW COLLATION語句可產(chǎn)生這些輸出列

例如,SHOW CHARACTER SET語句可產(chǎn)生這些輸出列

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 

該語句顯示了多字節(jié)字符集。

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。原始參考手冊為英文版,與英文版參考手冊相比,本翻譯版可能不是最新的。

Previous article: Next article: