Mysql生成數據字典


生成原理

在MySQL中,有個自帶的數據庫,名為information_schema。其中保存着關於MySQL服務器所維護的所有其他數據庫的信息。如數據庫名,數據庫的表,表欄的數據類型與訪問權 限等。我們通過查詢這個數據庫的COLUMNS表(此表提供了其他所有表中的列信息)信息,來獲取我們需要的表結構信息,從而將其導出為數據字典。

生成實例

navicat 執行以下SQL的查詢(如果需要其他字段,請參考下面COLUMNS表字段拓展):

 1 SELECT
 2     COLUMN_NAME AS '字段名',
 3     COLUMN_TYPE AS '字段類型',
 4     ( CASE WHEN IS_NULLABLE = 'YES' THEN '' ELSE '' END ) AS '是否可空',
 5     ( CASE WHEN COLUMN_KEY = 'PRI' THEN '' ELSE '' END ) AS '是否主鍵',
 6         COLUMN_DEFAULT AS '默認值',
 7     COLUMN_COMMENT AS '注釋' 
 8 FROM
 9     INFORMATION_SCHEMA.COLUMNS 
10 WHERE
11     TABLE_SCHEMA = '數據庫' 
12     AND TABLE_NAME = '';

通過navicat工具進行導出(如下圖的按鈕,之后自行選擇要導出的內容);

COLUMNS表字段拓展:

列名 描述
COLUMN_NAME 字段名
COLUMN_TYPE 字段類型
TABLE_CATALOG 表限定符。
IS_NULLABLE 列的為空性。如果列允許 NULL,那么該列返回 YES。否則,返回 NO。
COLUMN_KEY 字段主鍵
COLUMN_DEFAULT 默認值
COLUMN_COMMENT 注釋
ORDINAL_POSITION 字段在表的順序(從1開始)
TABLE_NAME 數據表名
TABLE_SCHEMA 數據庫名
DATA_TYPE 數據類型
DATETIME_PRECISION datetime 及 SQL-92 interval 數據類型的子類型代碼。對於其它數據類型,返回 NULL。
EXTRA 額外信息
GENERATION_EXPRESSION  
NUMERIC_PRECISION 近似數字數據、精確數字數據、整型數據或貨幣數據的精度。否則,返回 NULL。
NUMERIC_SCALE 近似數字數據、精確數字數據、整數數據或貨幣數據的小數位數。否則,返回 NULL。
PRIVILEGES  
CHARACTER_MAXIMUM_LENGTH 以字符為單位的最大長度,適於二進制數據、字符數據,或者文本和圖像數據。否則,返回NULL。
CHARACTER_OCTET_LENGTH 以字節為單位的最大長度,適於二進制數據、字符數據,或者文本和圖像數據。否則,返回 NULL。
CHARACTER_SET_NAME 如果該列是字符數據或 text數據類型,那么為字符集返回唯一的名稱。否則,返回 NULL。
COLLATION_NAME 排序規則,如果列是字符數據或 text數據類型,那么為排序次序返回唯一的名稱。否則,返回 NULL。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM