生成原理
在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工具進行導出(如下圖的按鈕,之后自行選擇要導出的內容);
描述 | |
---|---|
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 |