開發筆記--Navicat導出postgresql表結構數據成excel文件


場景描述:

     項目開發中,模型設計經常用powerdesigner來操作,當我們需要給別人介紹表結構或者一些文檔交付的時候,需要Excel表格樣式的數據,

     這個時候,可以用工具Navicat來實現。

操作步驟:

     注:本文針對postgresql數據庫

     1. 執行如下sql語句,查看表結構

SELECT 
  A.attnum AS "序號",
    ---C.relname AS "表名",
    ---CAST ( obj_description ( relfilenode, 'pg_class' ) AS VARCHAR ) AS "表名描述",
    A.attname AS "字段名",
    A.attnotnull as 是否為空,
    ---IF(A.attnotnull='f','是','否') AS '必填',
    concat_ws ( '', T.typname, SUBSTRING ( format_type ( A.atttypid, A.atttypmod ) FROM '\(.*\)' ) ) AS "數據類型",
    d.description AS "注釋" 
FROM
    pg_class C,
    pg_attribute A,
    pg_type T,
    pg_description d 
WHERE
    C.relname = '實際表名' 
    AND A.attnum > 0 
    AND A.attrelid = C.oid 
    AND A.atttypid = T.oid 
    AND d.objoid = A.attrelid 
    AND d.objsubid = A.attnum 
ORDER BY
    C.relname DESC,
    A.attnum ASC

2. 點擊運行,小三角,切換到查詢結果界面

3. 如果執行正常,確認結果后,點擊上邊的“導出結果”按鈕,

彈出如下窗口:

點擊“Export Current Result”,勾選Excel文件,Continue繼續,按着提示繼續保存就可以。

 

--OK

參考:

Navicat導出mysql表結構:https://www.cnblogs.com/xianxiaobo/p/10254737.html

SELECT
COLUMN_NAME 字段名稱,
COLUMN_TYPE 數據類型,
IF(IS_NULLABLE='NO','','') AS '必填',
COLUMN_COMMENT 注釋
FROM
INFORMATION_SCHEMA.COLUMNS
where
-- Finance為數據庫名稱,到時候只需要修改成你要導出表結構的數據庫即可
table_schema ='Finance'
AND
-- user為表名,到時候換成你要導出的表的名稱
-- 如果不寫的話,默認會查詢出所有表中的數據,這樣可能就分不清到底哪些字段是哪張表中的了
table_name = 'user'

https://blog.csdn.net/u010189683/article/details/84947193

查詢Postgresql系統表,顯示列名...: https://blog.csdn.net/weixin_43236610/article/details/88077484

select a.attname                                                       as 列名,
       format_type(a.atttypid, a.atttypmod)                            as 類型,
       (case when a.attlen > 0 then a.attlen else a.atttypmod - 4 end) as 長度,
       a.attnotnull                                                    as 是否可為空,
       d.adsrc                                                         as 默認值,
       col_description(a.attrelid, a.attnum)                           as 備注
from pg_class c,
     pg_attribute a
       left join (select a.attname, ad.adsrc
                  from pg_class c,
                       pg_attribute a,
                       pg_attrdef ad
                  where relname = 'table_name'
                    and ad.adrelid = c.oid
                    and adnum = a.attnum
                    and attrelid = c.oid) as d on a.attname = d.attname
where c.relname = 'table_name'
  and a.attrelid = c.oid
  and a.attnum > 0;

 


免責聲明!

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



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