MySQL將表資訊匯出成Excel
阿新 • • 發佈:2021-08-02
MySQL將表資訊匯出成Excel
今天收到一個新需求,將所有資料庫表整理成表格提交給產品,給的模板大概是這樣
考慮到表也不多,就打算直接sql進行查詢後cv大法。
先展示結果,如圖:
上程式碼
SELECT COLUMN_NAME 資料項名稱, DATA_TYPE 資料項型別, CHARACTER_MAXIMUM_LENGTH 資料項長度, IF (COLUMN_KEY = 'PRI', '是', '') 是否關鍵字, IF (IS_NULLABLE = 'NO', '否', '是') 是否為空, COLUMN_COMMENT 資料項含義, IF (EXTRA = 'auto_increment', '自增', '') 資料項說明 FROM INFORMATION_SCHEMA. COLUMNS WHERE -- 資料庫名稱 table_schema = '你的資料庫名' -- article為表名 AND table_name = '你的表名'
以上是我需求所需要的用到的欄位,還有很多其他的欄位你們可以參考下表:
列名 | 欄位型別 | 描述 |
---|---|---|
TABLE_CATALOG | varchar(512) | 表限定符 |
TABLE_SCHEMA | varchar(64) | 表所有者 |
TABLE_NAME | varchar(64) | 表名 |
COLUMN_NAME | varchar(64) | 列名 |
ORDINAL_POSITION | bigint(21) | 列標識序號(順序) |
COLUMN_DEFAULT | longtext | 該列的預設值 |
IS_NULLABLE | varchar(3) | 是否為空,返回NO/YES |
DATA_TYPE | varchar(64) | 資料型別(舉例:varchar) |
CHARACTER_MAXIMUM_LENGTH | bigint(21) | 以字元為單位的最大長度 |
CHARACTER_OCTET_LENGTH | bigint(21) | 以位元組為單位的最大長度 |
NUMERIC_PRECISION | bigint(21) | 近似數字資料、精確數字資料、整型資料或貨幣資料的精度。否則,返回 NULL |
NUMERIC_SCALE | bigint(21) | 近似數字資料、精確數字資料、整數資料或貨幣資料的小數位數。否則,返回 NULL |
CHARACTER_SET_NAME | varchar(32) | 如果該列是字元資料或 text 資料型別,那麼為字符集返回唯一的名稱。否則,返回 NULL |
COLLATION_NAME | varchar(32) | datetime 及 SQL-92 interval 資料型別的子型別程式碼。對於其它資料型別,返回 NULL |
COLUMN_TYPE | longtext | 如果列是字元資料或 text 資料型別,那麼為排序次序返回唯一的名稱。否則,返回 NULL |
COLUMN_KEY | varchar(3) | 索引 |
EXTRA | varchar(27) | 額外項,例如:有自增返回auto_increment,否則空字串 |
PRIVILEGES | varchar(80) | 許可權 |
COLUMN_COMMENT | varchar(1024) | 註釋 |
以上部分描述來源於百度,不理解的自己拿一張表去 select * 一下 INFORMATION_SCHEMA. COLUMNS 表基本就能get了。