這幾天剛來實習,項目主管給我佈置了個寫文檔的任務,要求把數據庫中所有的表全部填在以下格式的文檔中!
一開始慢悠悠的從 Native 中一個一個查看錶的結構,不停的複製粘貼-複製粘貼,頭都大了,幾十張表,幾千個字段,我啥時候能下班啊。
於是,我想起可以直接利用sql語句,生成上表的樣式,然後直接複製進去,就可以了,話不多說,附上代碼。
SELECT
COLUMN_NAME as 字段名稱,
COLUMN_TYPE as 數據類型,
if(COLUMN_KEY='PRI','Y','N') as 主鍵,
COLUMN_COMMENT as 備註
FROM
INFORMATION_SCHEMA. COLUMNS
WHERE
table_schema = '數據庫名稱'
AND
table_name = '數據表名稱'
使用內置表INFORMATION_SCHEMA. COLUMNS來查詢,任何表中的任何一列都會在此表中對應一行記錄。
例如,我的數據表 account(賬戶表) 的結構爲
執行完SQL語句後
現在直接複製粘貼就可以了!
那我能不能直接導出到excel中呢,還得帶有表頭。話不多說,放代碼~
SELECT '字段名稱','數據類型','主鍵','備註'
UNION
SELECT
COLUMN_NAME as 字段名稱,
COLUMN_TYPE as 數據類型,
if(COLUMN_KEY='PRI','Y','N') as 主鍵,
COLUMN_COMMENT as 備註
FROM
INFORMATION_SCHEMA. COLUMNS
WHERE
table_schema = 'mydata'
AND
table_name = 'account'
INTO OUTFILE 'C:/Users/Administrator/Desktop/account.xls'
執行後,發現桌面多了account.xls,具體內容如下
唉,真舒服,又可以早點下班了。
補充字段(非空字段)
SELECT 'SQL字段名稱','數據類型','非空','主鍵','備註'
UNION
SELECT
COLUMN_NAME as `SQL字段名稱`,
-- COLUMN_NAME as `JAVA字段名稱`,
COLUMN_TYPE as `數據類型`,
if(IS_NULLABLE='NO','Y','N') as `非空`,
if(COLUMN_KEY='PRI','Y','N') as `主鍵`,
COLUMN_COMMENT as `備註`
FROM
INFORMATION_SCHEMA. COLUMNS
WHERE
table_schema = 'dsp'
AND
table_name = 'dsp_supplier'
-- INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/dsp_supplier.xlsx'