1. 程式人生 > 其它 >MySQL將表資訊匯出成Excel

MySQL將表資訊匯出成Excel

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了。