导出mysql及oracle数据库字段到excel方法


oracle

SELECT DISTINCT
atc.table_name AS "表名"
,atcom.comments AS "表注释"
,atc.column_id AS "字段序号"
,atc.column_name AS "字段名"
,atc.data_type AS "字段类型"
,atc.data_scale AS "字段精度"
,atc.data_length AS "字段长度"
,acc.comments AS "字段注释"
,allt.num_rows as "表数据量"
FROM
all_tab_columns atc
INNER join all_col_comments acc ON atc.table_name = acc.table_name AND atc.owner = acc.owner AND atc.column_name = acc.column_name
INNER join all_tab_comments atcom ON atc.table_name = atcom.table_name AND atcom.owner = acc.owner AND atcom.table_type = 'TABLE'
INNER join all_tables allt on atc.table_name = allt.table_name AND atc.owner = allt.owner
WHERE
atc.owner = '数据库名'
ORDER BY
atc.table_name,
atc.column_id

mysql

SELECT
    TABLE_NAME 表名,
    ORDINAL_POSITION 序号,
    COLUMN_NAME 字段名称,
    COLUMN_COMMENT 注释,
    IF( IS_NULLABLE = 'NO', '是', '' ) AS '必填', --  IS_NULLABLE = 'NO' 时,为必填,必填返回“是”,非必填返回空
    COLUMN_TYPE 数据类型,
    IF( column_key='PRI','是','' ) AS '主键唯一' -- column_key='PRI' 时,为主键唯一索引,是返回“是”,否返回空
    -- COLUMN_DEFAULT 默认值,
    -- CHARACTER_MAXIMUM_LENGTH 字符串最大长度【以字符为单位】,
    -- CHARACTER_OCTET_LENGTH 字符串最大长度【以字节为单位】,
    -- CHARACTER_SET_NAME 字符串字符集名称,
    -- COLLATION_NAME 字符串归类名称,
    -- NUMERIC_PRECISION 数字精度,
    -- NUMERIC_SCALE 数字刻度,
    -- DATETIME_PRECISION 时间分数秒精度
 
FROM
    INFORMATION_SCHEMA.COLUMNS 
    WHERE-- performance_schema 为数据库名称,到时候只需要修改成你要导出表结构的数据库即可
    table_schema = 'performance_schema' 
    
-- AND
-- events_errors_summary_by_account_by_error 为表名,到时候换成你要导出的表的名称
-- 如果不写的话,默认会查询出该数据库中所有表的表结构;这里如果指定表名,则可以导出单独一个表的表结构
-- table_name = 'events_errors_summary_by_thread_by_error'
    
ORDER BY
    TABLE_NAME,
    ORDINAL_POSITION

 

原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/267426.html

(0)
上一篇 2022年6月15日
下一篇 2022年6月15日

相关推荐

发表回复

登录后才能评论