精华内容
下载资源
问答
  • csv文件导入mysql数据库

    万次阅读 2017-10-23 10:25:34
    推荐理由:一、解决csv文件导入mysql数据库的问题。二、解决导入数据中文乱码情况。拿到一份csv文件,有八个csv文件,每个csv文件的数据需要导入数据库对应表。常用的navicat for mysql工具支持导入。 1、右键需要...

    拿到一份csv文件,有八个csv文件,每个csv文件的数据需要导入数据库对应表。常用的navicat for mysql工具支持导入。
    1、右键需要导入数据的表,点击“导入向导”,弹出如下弹框。

    1

    看了一眼,导入类型并没有我们需要的csv文件格式(注:Navicat Premium 11 支持csv导入格式)。双击打开csv文件打开,可用excel打开。如下图:

    excel

    想着,要不转换成excel的xls文件格式。然后用excel工具,另存为xls格式。殊不知,给自己埋了个坑。xls文件的行数是有限制的,最大为65536行,列也有限制,最大为256列。以上限制数据基于excel版本2010及以下。所以当数据量大于65536条时,后面的数据就被抹去了,造成导入数据库数据异常。
    后来,把csv文件以文本形式(txt)打开,如下图:

    txt

    既然文本打开无异常,那么就可以以文本形式导入。
    2、导入类型选择“文本文件(*.txt)”,点击“下一步”。
    3、点击“选择数据源文件”,弹出窗口,默认选择格式类型为*.txt的,可选择全部文件,而后选择csv文件。若数据库建表语句是“DEFAULT CHARSET=utf8”,那么编码格式默认65001 (UTF-8)即可。点击“下一步”。

    2

    4、栏位分隔符选择,csv文件文本打开是“,”分割的,选择“,”。其他默认。点击“下一步”。

    3

    5、数据源选项,没有特殊要求的话只需要改一下栏位与第一组数据的行数。设置好后,点击“下一步”。

    4

    6、选择目标表,由于已经有对应的表,不需要创建表。点击“下一步”。

    5

    7、定义对应栏位,若导入文件的字段栏位与数据库字段名匹配,会自动设置对应关系。若栏位字段不对应,可手工调整。设置好后,点击“下一步”。

    6

    8、选择导入模式,有添加、更新、添加或更新、删除、复制五种模式。若需空格代替字段为null的值,点击“高级”。设置好后,点击“下一步”。

    7

    9、执行,点击“开始”,开始导入数据。数据导入完毕后,查看下是否有报错,有报错,排查问题,无报错,数据导入过程结束。

    8

    10、检查表数据,打开表,查看数据是否有异常,还真有异常,中文乱码。

    mix_code

    解决方法:
    Notpad++打开后,选择“编码  转为UTF-8编码格式”,保存。重新导入文件即可.

    utf-8

    注:若是Navicat Premium 11 支持csv导入格式,选择csv导入格式后出现中文乱码,在第3步设置导入编码格式为:20936 (Simplified Chinese GB2312)

    展开全文
  • 主要介绍了PHP编程实现csv文件导入mysql数据库的方法,涉及php文件读取、转换、数据库的连接、插入等相关操作技巧,需要的朋友可以参考下
  • CSV文件导入MySQL数据库工具软件 CSVtoDB v1.0.zip 因手头项目需要向MYSQL数据库导入大量的EXCEL数据。网上搜索了相关博客,受限于功能或者本人有一点点的小强迫,业余时间开发了本工具。 EXCEL导入到MYSQL有多种...
  • csv.reader(open("Cumulative.csv", "rb")) reader.next() for row in reader[1:]: cursor.execute("INSERT INTO Cumulative (C1, C2, C3, C4, C5, C6) VALUES(%s, %s, %s, %s, %s, %s)", row) cursor.commit() 关闭...

    这是我的代码:#!/usr/bin/python

    import MySQLdb

    import csv

    db = MySQLdb.connect(host="host", # The Host

    user="username", # username

    passwd="pwd", # password

    db="databasename") # name of the data base

    sqlLoadData = "LOAD DATA LOCAL INFILE "csv?_file_name.csv" INTO TABLE tablename "

    sqlLoadData += "FIELDS TERMINATED BY "," LINES TERMINATED BY " ""

    sqlLoadData += "IGNORE 1 LINES"

    sqlLoadData += "ENCLOSED BY """ ESCAPED BY "\" "

    try:

    curs = db.cursor()

    curs.execute(sqlLoadData)

    resultSet = curs.fetchall()

    except StandardError, e:

    print e

    db.rollback()

    db.close()

    我收到一条错误消息:您的SQL语法有错误;请检查与Mysql服务器相关的手册。

    当我移除部件sqlLoadData += "ENCLOSED BY """ ESCAPED BY "\" "时,一切工作正常。我使用最后一部分只是为了从值中删除引号。

    我也试过:cursor = mydb.cursor()

    reader = csv.reader(open("Cumulative.csv", "rb"))

    reader.next() for row in reader[1:]:

    cursor.execute("INSERT INTO Cumulative (C1, C2, C3, C4, C5, C6) VALUES(%s, %s, %s, %s, %s, %s)", row)

    cursor.commit()

    关闭与数据库的连接。cursor.close()

    我只想删除引号,这样整数字段将支持数据。所以带引号的“1”将被视为字符串而不是整数

    有人能帮我理解这个吗?

    谢谢!

    展开全文
  • 将大csv文件导入mysql数据库

    千次阅读 2019-07-05 15:26:15
    我这边是利用pandas来将csv文件导入MySQL数据库的 首先说一下实现逻辑,就是将csv读取到dataframe中,然后把按行读取数据,将每行的数据添加到列表中,在利用pymysql这个包将数据添加到数据库。 代码如下: import...

    我这边是利用pandas和pymysql来实现将csv文件导入到MySQL数据库的
    首先说一下实现逻辑,就是将csv读取到dataframe中,然后把按行读取数据,将每行的数据添加到列表中,在利用pymysql这个包将数据添加到数据库。
    代码如下:

    import pandas as pd
    import pymysql
    
    #读取数据
    test = pd.read_csv(r'Antai_AE_round1_item_attr_20190626/Antai_AE_round1_item_attr_20190626.csv')
    test.head()
    #连接数据库
    db = pymysql.connect(host="IP地址",user="数据库用户名", passwd="密码",db="要连接的数据库",charset='utf8')
    #定义操作函数
    def insert_deta():
        list1 = []
        num = 0 
        cursor = db.cursor()
        for i in range(0,test.shape[0]):  # 利用shape的第一个元素来获取数据的数量
            row_data = test.iloc[i]       # 获取第每行数据
            value = (str(row_data[0]),str(row_data[1]),str(row_data[2]),str(row_data[3]))  #读取第每行中每列数据,由于数据库添加使用的都是字符串形式添加故都取str
            list1.append(value)
            num +=1
            if num==10000:
                sql = "INSERT INTO item(item_id,cate_id,store_id,item_price)VALUES(%s,%s,%s,%s)"
                cursor.executemany(sql, list1)  # 执行sql语句
                db.commit()
                num = 0  # 计数归零
                list1.clear()  # 清空list
    
    
        cursor.close()  # 关闭连接
        db.close()
    #执行函数 
    insert_deta()
    

    其中需要说明的是,要实现上述操作,需要先在数据库建好你要导入的那张表。其次我对代码进行了一定的优化,因为添加到数据库是一个耗时操作,所以我利用executemany方法将数据以每10000条来添加到数据库,提高效率。
    其中我的数据库类型是:
    executemany
    最后存入数据后:
    在这里插入图片描述

    方法二,利用第三方包直接存入

    from sqlalchemy import create_engine
    #读取数据
    data = pd.read_csv('RFM_TRAD_FLOW.csv',encoding = 'gbk')
    #创建连接数据库对象
    engine = create_engine('mysql+pymysql://用户名:密码@localhost/数据库名?charset=utf8')
    #存入数据库
    data.to_sql('数据库表名字',engine)
    
    展开全文
  • 列数较多的csv文件导入mysql数据库(过程及问题记录)

    刚接触mysql,想把几个表导入到数据库中,结果就遇到了问题。

    原始数据是这样的:

    1、使用navicat报错:

    [ERR] Cannot create table[china_sites_20140516]: 1118 - Row size too large. The maximum row size for theused table type, not counting BLOBs, is 65535. This includes storage overhead,check the manual. You have to change some columns to TEXT or BLOBs

     

    按照这个报错的解决方法是:在这一步手动一个个将type改为text或blob,但表格有近千列…

    在群里咨询了下,有人给出这样的解决方案:先定义一个游标,读出所有表名,然后用动态sql语句,改变字段类型。但是我还没有试这种方式。

     

    2、使用mysql的load data infile:

    先是新建了一个表,由于待导入的表有近千列,也就是有近千个属性字段,我在新建表格时,只新建了一个字段。

    然后,用下面语句导入:

    LOAD DATA local INFILE "E:\test.csv"

    replace INTO TABLE test

    CHARACTER SET gbk

    FIELDS TERMINATED BY ","

     ENCLOSED BY ""

    LINES TERMINATED BY "\r\n"

    IGNORE 1 LINES;

    结果没报错但出了警告,表格没导入成功:

    | Warning | 1262 | Row 1 was truncated; itcontained more data than there were input columns

    这句话的意思是导入的表格列数超标,被截断了。

    估计是新建表格,只新建了一列的原因,但我不能手动新建近千列字段呀。

    3、不完美的解决方案

    试着将数据进行缩减,只保留必要数据,然后用navicat向mysql数据库中导入数据。把数据缩减之后,列数还是很多,在导入时还是会报上面的错误,经过观察发现缩减后的数据经过转置之后只有24列,我就把缩减的数据转置后进行导入,成功了。我接着把原始数据也进行了转置,但转置之后也报错,估计还是列数太多了,因为原始数据转置之后也有340列。

     4、总结

    虽然这个问题,目前没有解决,但我想总结下以后遇到这种摸不着头绪的问题的解决思路。不然像这次我在网上找了各种方法,也实验了各种方法,但都不奏效,一天下来,自己脑袋都晕了。1)借助报错信息,发现问题所在。这点是比较重要的,我刚开始不懂得看报错信息,也不知道从哪里找报错信息,一直纳闷哪里出错了。2)回顾下,软件操作是否正确,代码输入是否符合语法规则。3)有可能是原始数据的问题。由前两点可以看出还是要在基本了解软件操作或代码操作的基础上再进行工作,不然出错了都不知道从哪入手。

    展开全文
  • NULL 博文链接:https://qq-24665727.iteye.com/blog/2339850
  • 因手头项目需要向MySql数据库导入大量的Excel数据。网上搜索了相关博客,受限于功能或者本人有一点点的小强迫,业余时间开发了本工具。 Excel导入到MySQL有多种解决方案。本人暂时先将Excel人力转出CSV...
  • MYSQL关于.csv文件导入 总共分成三步: (1)创建表格 (2)用记事本修改.csv文件的编码 (3)利用MYSQL workbench导入文件 具体: 1.创建表格 总共四小步 2.用记事本修改.csv文件的编码 总共 (1)将....
  • 使用navicat把csv文件导入mysql数据库

    千次阅读 2019-05-13 22:11:30
    第一步:建立navicat与mysql的连接 第二步:这里我用命令行界面来创建数据库 ...第四步这里导入csv文件,编码方式选择936,导入路径具体而定,然后接下来按照系统默认的选项就行了,点击开始 最后:导入成功 ...
  • 原博客地址 ...主要改变: load data infile ‘F:/MySqlData/test1.csv’ --CSV文件存放路径 into table student–要将数据导入的表名 fields terminated by ‘,’ optionally enclosed by...
  • \\Users\\83469\\Desktop\\新建文件夹"): for j in i: data_info=pd.read_csv(f+"\\"+j,iterator=True,chunksize=1) file_name=j[:-4] sql='create table if not exists `'+file_name+'`(id int auto_increment ...
  • csv文件导入mysql数据库问题集

    千次阅读 2019-02-13 17:57:48
    官方给的代码如下: load data infile '/yourfilepath/test.csv'  into table table名 fields terminated by ',' optionally enclosed by '"' escaped by '"...CSV文件存放路径 要将数据导入的...
  • $db = new PDO('mysql:host=localhost;dbname=apdatabase', 'root', ''); $db->exec("SET CHARACTER SET utf8"); while(($filesop = fgetcsv($handle, 1000,";")) !== false) { $filenumb = $filesop['...
  • I need to import some campaigns using a CSV file into my MySQL database. <p>The CSV file has 12 titles, but I only want to import the data from title 1, 3, 5, 6 and 8. The code below imports the csv...
  • 一直不大懂csv怎么通过mysql图形化的界面直接导入,看了很多帖子,总觉得自己会了,但实际导入中又总是出问题。一个是如果直接一个csv导入自动创建新表,所有列的数据类型都是text好像,然后导入时间巨长;另一个是...
  • 参考链接 https://blog.csdn.net/glDemo/article/details/46886001 ...https://stackoverflow.com/questions/10154633/load-csv-data-into-mysql-in-python https:...
  • csv文件导入mysql数据库命令

    千次阅读 2016-05-14 17:51:41
    load data local infile 'top-1m-20160501.csv' into table alexa_domains_2 fields terminated by ',' enclosed by '"' lines terminated by '\n' (rank, domain); 如果报错 ERROR 1148: The used command is...
  • mysql 下执行命令:loaddatain file'/mnt/share/patch_export.csv' //csv file pathintotable`tablename`fieldsterminatedby','optionallyenclosedby'"'escapedby'"'linesterminatedby'\n';如果遇到权限问...
  • csv.reader(open('Cumulative.csv', 'rb')) reader.next() for row in reader[1:]: cursor.execute('INSERT INTO Cumulative (C1, C2, C3, C4, C5, C6) VALUES(%s, %s, %s, %s, %s, %s)', row) cursor.commit() 关闭...
  • 2019独角兽企业重金招聘Python...excel数据导入mysql数据库中 先把excel文件另存为csv文件,然后复制上面的代码,改下文件地址和表名 编码一定要正确,不然会出现中文乱码的 具体用法: data.html ...
  • Python有很多库可以对CSV文件和Excel文件进行自动化和规模化处理。但是,使用数据库可以将计算机完成任务的能力提升成千上万倍!那么问题来了,如果有很多个文件需要导入数据库,一个一...
  • 1.配置my.ini内容 本人是使用MySQL57,别的版本我就不知道怎么办了。 (1)打开路径C:\ProgramData\MySQL\MySQL Server 5.7,找到该路径下的my.ini, ...(3)放入文件:把你需要导入数据的文件放入C:\Progra
  • config.db.php内容如下; &lt;?php $username="root"; $userpass="123"; $dbhost="...$db_connect=mysql_connect($dbhost,$username,$userpass) or die("Unable...
  • LOAD DATA INFILE "D:/csv03011039.csv" REPLACE INTO TABLE download_csv CHARACTER SET utf8 FIELDS TERMINATED BY "," ENCLOSED BY "" LINES TERMINATED BY "\r\n";

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 937
精华内容 374
关键字:

csv文件导入mysql数据库

mysql 订阅