excel数据表导入远程mysql数据库

解决的问题

  • mysql数据库在公司内网服务器,而excel数据表在本地,需要堡垒机跳转才能访问,无法直连,因此在本地任何客户端导入数据表的方法都不好使。

  • 数据库只开放了一个端口,无法将数据表传到数据库服务器上,再登入数据库利用load data infile命令导入。

解决办法

登陆内网任意一台可以链接数据库的服务器,将excel文件导出为.sql文件,然后使用mysql -h host -Pport -u user_name -pPassword database < file.sql 命令即可完成导入

创建数据表

  • 登入数据库 mysql -hHost -Pport -uUser_name -pPassword -Ddatabase
  • 创建数据表
create [temporary] table [if not exists] table_name
    (create_definition)
    [table_options]
    [parttion_options]

以我要创建的存储我国省市行政区划代码为例,我的语句是

create table city_code_dic (id int not null auto_increment, 
    city_code varchar(6), 
    city_name varchar(20), 
    primary key (id));

需要注意的是最新版本的mysql存储中文字符时,一个varchar可以存储一个汉字,经过测试最长的行政区划名称也只有15个字,因此varchar(20)绰绰有余。

excel导出为.sql

我的excel表格长的是这个样子的:
excel数据表导入远程mysql数据库_第1张图片

  • 首先鼠标点击C1单元格,输入一句insert语句,比如="insert into city_code_dic (city_code, city_name) values('"&&"','"&&"');",然后让光标停留在两个&中间,再点击要取值的单元格,此处是A1,就会发现A1自动填入两个&之间了。

  • 然后需要将C1格式填充整列,可以选择拖动填充,我这里有3000多行不想拖动,就可以在名称栏里输入填充的列,比如我的是C1:C3578,然后按Shift+Return选中单元格,再将鼠标光标定位在要复制的公式栏最后,按Cmd/Ctrl+Return即可

  • 将生成的列复制出来,另存为.sql文件,再上传到能连接到数据库的服务器上,执行文章开头所说的命令就可以了。

你可能感兴趣的:(杂)