将 Microsoft Excel 导入至 MySQL
一、前言
我得到了一份 Microsoft Excel 表格,里面记录了数据信息需要导入至 SQL 数据库。
如果只是导入数据,当然用 MSSQL 是最方便的。在导入界面选择 Excel 即可。
但是作为一名红帽工程师,我的第一反应是另存为 Microsoft Excel 逗号分隔值文件 (.csv) 上传至服务器。
import pandas as pd
data=pd.read_csv('test.csv')
...
一顿操作无果后,再次打开了 Excel 表格以求灵感。
二、表格
微软有这样的一条函数:
=CONCATENATE("")
提示:"&D1&" 表示 D行1列表格;下图中在双引号外面又加了一层单引是因为SQL语法。
小技巧:下拉十字时双击小加号即可全部填充。
After upload to server.
cd PWD
mysql -uroot -pPASSWORD
show databases;
use DATABASE;
set names utf8;
show tables;
source TABLE.SQL
mysql -uroot -pPASSWORD -D DATABASE < TABLE.SQL
or
mysql -uroot -pPASSWORD DATABASE < TABLE.SQL
现在可以在服务器查看下成功没有。
三、MYSQL
其实不用 "二" 那么麻烦,直接把表格导出为 "txt"。再使用 mysqlimport 工具即可完成导入!
mysqlimport -uroot -pPASSWORD test --fields-terminated-by="," --columns 编号,姓名,昵称 --local test.txt -vv
-h mysql ip地址
-u 用户
-p 用户名密码
test 数据库名称
--fields-terminated-by 文件中字段之间的分隔符
--columns 要加载文件到表的字段名
--local :从本地客户端读入输入文件。
/home/rabbit/test.txt 文件在linux的本地路径
注意:文件名与表同名。
如果遇到中文字符显示为 "???" 请保存数据库文件后,尝试为数据库添加条指令如下
create table table_name () CHARACTER SET = utf8;
提示 "ERROR 1317 (70100): Query execution was interrupted"
是因为系统负载没下去,再执行一遍指令即可。