zoukankan      html  css  js  c++  java
  • [转]csv文件导入Mysql

    本文转自:https://blog.csdn.net/quiet_girl/article/details/71436108

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

    Step1:csv文件的准备

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

    (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,若编码格式不正确,改变编码格式,如下图:

    Step2:数据的导入

    第一种情况:导入部分不包含中文字体

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

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

    1. show databases;   
    show databases; 
    执行结果如下图:

    test便是之前建立的数据库。

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

    1. use test;  
    use test;

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

    1. show tables;   
    show tables; 
    结果如下图:

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

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

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

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

    1. load data infile 'F:/MySqlData/test1.csv' --CSV文件存放路径  
    2. into table student character set gb2312 --要将数据导入的表名  
    3. fields terminated by ',' optionally enclosed by '"' escaped by '"'  
    4. lines terminated by ' ';  
    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 '
    ';
    结果如下图:

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

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

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

    Error 1366(HY000):Incorrect string value: 'x95FxBExF4xC6xFB...' 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’。

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/quiet_girl/article/details/71436108 
  • 相关阅读:
    鼠标不灵了,还好只是线的问题。自己DIY修下了
    [摘]编译MPlayer
    TPLINK路由器 硬重启方法
    Visual C++线程同步技术剖析 (转载)
    CListCtrl一行显示多个图标问题
    一位软件工程师的6年总结
    CCIE红头发讲解CCNA、CCNP视频教程
    图片链
    [摘]如何级联两个TPLINK路由器
    [摘]测试一下你对IP地址的掌握水平
  • 原文地址:https://www.cnblogs.com/freeliver54/p/9117215.html
Copyright © 2011-2022 走看看