前言
需求是查询mysql数据库某个库所有表和表字段及字段属性,将查询结果从linux服务器上导出为Excel文件,下载到本地。
一、查询某个库所有表和表字段
SELECT
C.ORDINAL_POSITION AS 列的排列顺序,
C.COLUMN_KEY AS 键,
T.TABLE_NAME AS 表名,
T.TABLE_COMMENT AS 表注释,
C.COLUMN_NAME AS 列名,
C.COLUMN_COMMENT AS 列注释,
C.IS_NULLABLE AS 是否为空,
C.DATA_TYPE AS 数据类型
FROM
information_schema.TABLES T LEFT JOIN information_schema.COLUMNS C ON T.TABLE_NAME = C.TABLE_NAME AND T.table_schema = C.table_schema
WHERE
T.TABLE_SCHEMA = 'test' ORDER BY C.TABLE_NAME,C.ORDINAL_POSITION;
PS:test是库名,根据需要自行修改,不同版本的mysql,可能有些许差异,但差异不大如果有点数据库基础,执行一下根据提示信息,自行更正。
二、将结果集导出成Excel文件
命令:
mysql -u 用户名 -p -e"select * from test_table" > /test.xls
回车,输入密码
即可导出成功。
范例:
mysql -u root -p -e"SELECT C.ORDINAL_POSITION AS 列的排列顺序, C.COLUMN_KEY AS 键, T.TABLE_NAME AS 表名, T.TABLE_COMMENT AS 表注释,C.COLUMN_NAME AS 列名, C.COLUMN_COMMENT AS 列注释, C.IS_NULLABLE AS 是否为空, C.DATA_TYPE AS 数据类型 FROM information_schema.TABLES T LEFT JOIN information_schema.COLUMNS C ON T.TABLE_NAME = C.TABLE_NAME AND T.table_schema = C.table_schema WHERE T.TABLE_SCHEMA = 'test' ORDER BY C.TABLE_NAME,C.ORDINAL_POSITION" > /test.xls
PS:/test.xls是导出的路径和文件名称,根据需求自行进行更改。如果路径问题,可能是操作系统的用户并没有路径的操作权限,可更换路径再次执行。
三、从linux服务器下载文件到本地终端
下载到本地的方法有很多,可以通过工具也可以通过命令。
我使用的是sz命令,如果不可使用sz命令,可能是你未安装lrzsz程序。
1、 安装lrzsz程序
yum -y install lrzsz
2、 执行sz命令
命令:
sz 目标文件
范例:
sz test.xls
到了这里就结束了