iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
1

學習來源: codedata - MySQL 超新手入門(17)查詢 information_schema

  1. information_schema資料庫
  2. SHOW指令
    1. 資料庫元件資訊
    2. 建立元件資訊
    3. 字元集與 collation
    4. 其它資訊
  3. DESCRIBE
  4. show

information_schema 資料庫

  1. 「information_schema」資料庫稱為「database metadata」,需要的時候,使用「SELECT」敘述來查詢儲存在裡面的資料
  2. 可能需要用的表格: COLUMNS, KEY_COLUMN_USAGE, TABLES, TRIGGERS, VIEWS
  3. 範例,查詢所以資料庫中的 stored rountines 資訊,包含種類、名稱與建立日期
    SELECT ROUNTINE_TYPE, ROUNTINE_NAME, CREATED
    FROM   information_schema.ROUNTINES
    

SHOW指令

  1. 「SHOW」指令是MySQL資料庫伺服器專用的指令,並不是標準的SQL敘述
  2. SHOW」指令,同樣可以查詢資料庫資訊

資料庫元件資訊

  1. 查詢 資料庫資訊:
    SHOW { DATABASES | SCHEMAS } [LIKE '樣板'...]
    
  2. 查詢 表格資訊":
    SHOW TABLES [STATUS] [FROM 資料庫名稱] [LIKE '樣板'... | WHERE 條件 ...]
    
    1. 「SHOW TABLE STATUS」: 詳細的表格資訊
    2. 「FROM」 可以指定資料庫,如果沒有指定就會查詢目前使用的料庫
  3. 查詢 欄位資訊":
    SHOW [FULL] COLUMNS FROM 表格名稱 [FROM 資料庫名稱] 
    [LIKE '樣板'... | WHERE 條件 ...]
    
    1. 「FULL」: 顯示完整資訊
    2. 搭配第二個「FROM」指定資料庫,如果沒有指定就會查詢目前使用的料庫
  4. 查詢 索引資訊":
    SHOW INDEX FROM 表格名稱 [FROM 資料庫名稱]
    [WHERE 條件...]
    
    1. 搭配第二個「FROM」指定資料庫,如果沒有指定就會查詢目前使用的料庫
  5. 查詢 Trigger資訊":
    SHOW TRIGGERS [FROM 資料庫名稱] [LIKE '樣板' | WHERE 條件...]
    
    • 搭配第二個「FROM」指定資料庫,如果沒有指定就會查詢目前使用的料庫

建立元件資訊

  1. 查詢MySQL資料庫伺服器中建立各種元件的詳細資訊
    1. SHOW CREATE DATABASE 資料庫名稱
    2. SHOW CREATE TABLE 表格名稱
    3. SHOW CREATE FUNCTION 名稱
    4. SHOW CREATE PROCEDURE 名稱
    5. SHOW CREATE VIEW 名稱

字元集與 collation

  • 語法
    SHOW CHARACTER SET [LIKE '樣板'... | WHERE 條件...]
    SHOW COLLATION [LIKE '樣板'... | WHERE 條件...]
    

其它資訊

  1. 查詢儲存引擎資訊
    SHOW [STORAGE] ENGINES
    
  2. 查詢伺服器狀態與系統變數資訊
    SHOW [GLOBAL | SESSION] STATUS [LIKE '樣板'... | WHERE 條件...]
    SHOW [GLOBAL | SESSION] VARIABLES [LIKE '樣板'... | WHERE 條件...]
    
    1. 「GLOBAL」: 伺服器資訊
    2. 「SESSION」: 用戶端連線資訊
  3. 查詢字元集相關的變數資訊 DESCRIBE
    1. MySQL資料庫伺服器提供的特殊指令,並不是標準的SQL敘述
    2. 語法
      {DESCRIBE | DESC} 表格名稱 [欄位名稱| '樣板'...]
      
    3. 範例
      DESC country
      DESC country Name
      DESC country 'GNP%'
      
      • country表格的欄位資訊
      • country表格中Name欄位資訊
      • country表格中,以 GNP開頭的欄位資訊

SHOW

MySQL資料庫伺服器提供一個可以在命令提示字元下執行的工具程式「mysqlshow」

  1. 語法
    mysqlshow -h 資料庫伺服器名稱 -u 帳號 -p密碼
    
    1. 資料庫伺服器 如果沒有指定,預設值「localhost」
    2. 「-p」與密碼之面沒有空格
  2. 用法
    mysqlshow -u root
    mysqlshow -u root world
    mysqlshow -u root world country
    
    1. 查詢資料庫
    2. 查詢 world資料庫中的表格
    3. 查詢 world資料庫中的country 表格有哪些欄位

快速找註解

SELECT c.COLUMN_NAME, c.DATA_TYPE, c.COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE TABLE_NAME = '資料表'
and Table_SCHEMA = '主機名稱'
and COLUMN_NAME = "欄位名稱"
SELECT column_name, column_comment, column_type, column_default, data_type, is_nullable
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '資料表名稱'
ORDER BY column_name

上一篇
Day20. MySQL: Triggers
下一篇
Day22. MySQL: 效率
系列文
網頁服務開發之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言