csv文件导入Mysql

本篇博客主要讲将csv文件导入Mysql的方法(使用命令行)。mysql


Step1:csv文件的准备


一、首先看一下我本次导入的数据,比较简单;sql

(1)在数据库中首先创建了一个名为“test”的数据库,在test数据库下创建了一个名为“student”的表格,表格属性以下:数据库

column name datatype Note
id INT(11) Primary Key, Not Null
name VARCHAR(45)  
password VARCHAR(45)  

(2)csv文件的存储内容以下,命名为test1.csv,存储位置:“F:/MySqlData/test1.csv”:



(若是是已知EXCEL文件,则将文件另存为.csv文件便可,千万不要直接改变文件的后缀名)字体

(3)这一步很重要:验证.csv编码格式是否正确,务必保证导入数据的编码格式是ANSI编码格式编码

使用Notepad++打开test1.csv,若编码格式不正确,改变编码格式,以下图:spa



Step2:数据的导入


第一种状况:导入部分不包含中文字体命令行

打开Mysql命令窗口,输入密码code

(1)查询已有数据库,使用命令 blog

show databases;
执行结果以下图:


test即是以前创建的数据库。ci

(2)使用这个数据库,使用命令

use test;

(3)查询咱们以前创建的表格student是否在test数据库中,使用命令

show tables;
结果以下图:


(4)使用下面的命令将test1.csv导入mysql:

  load data infile 'F:/MySqlData/test1.csv' --CSV文件存放路径
  into table student--要将数据导入的表名
  fields terminated by ',' optionally enclosed by '"' escaped by '"'
  lines terminated by '\r\n';
执行结果以下图,使用select * from student;查看已导入的数据:



第二种状况:导入数据包含中文字体

只须要将上述导入不包含中文的状况中的导入sql语句变成(加入编码格式)

load data infile 'F:/MySqlData/test1.csv' --CSV文件存放路径
into table student character set gb2312 --要将数据导入的表名
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n';
结果以下图:




可能出现的问题及解决方案:


Error 1261(01000):Row XX doesn't contain data for all columns

Method:本错误信息提示第XX行数据不足,查看你数据库表中创建的字段和数据中提供的字段数目是否相同,只有两者数目一致,才能够导入。


Error 1366(HY000)Incorrect string value: '\x95F\xBE\xF4\xC6\xFB...' for column 'enterprise' at row XX

Method:本错误信息提示第XX行‘enterprise’字段出现不正确的字符,查找以后发现我在这个字段的数据含有2个比较复杂的汉字“旻爵”,可能没法识别,把这2个字去掉以后这个错误便消失了。


Error 1366(HY000)Incorrect integer value: ' ' for column 'money' at row XX

Method:本错误信息提示第XX行出现不正确的int值,可能缘由是数据库“money”字段定义的数据类型是int型,而数据中存储的却不是int型(多是double型、float型之类的)--这种状况通常是数据类型出现不一致的问题。


Error 1265(01000):Data truncated for column 'money' at row XX

Method:本错误信息提示第XX行数据被截断,可能缘由是数据库中‘money’字段是double型或者float型,可是数据文件中可能存在null值,即这个数据值多是不存在的,解决方案是将这个缺失的字段补‘0’。