Python - mysql中导入CSV数据 【学习笔记】

<span style="font-size:18px;">导出
mysql> INSERT INTO test_main
    -> SELECT 1, 'A' UNION ALL
    -> SELECT 2, 'B' UNION ALL
    -> SELECT 3, 'C';
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>
mysql> select id, value
    -> INTO OUTFILE 'f:/test_main.txt'
    -> FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''''
    -> LINES TERMINATED BY '\n'
    -> FROM test_main;
Query OK, 3 rows affected (0.01 sec)

导入  数据文件比目标表多字段

mysql> LOAD DATA INFILE 'f:/test_main.txt'
    -> INTO TABLE test_main6
    -> FIELDS TERMINATED BY ','
    -> OPTIONALLY ENCLOSED BY ''''
    -> (@dummy, value);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select * from test_main6;
+-------+
| value |
+-------+
| A     |
| B     |
| C     |
+-------+
3 rows in set (0.00 sec)

这里的关键点, 在于那个   @dummy。
对你而言, 如果文件有 10列, 你只导 2 , 7 的话, 那就是

@dummy,列2,@dummy,@dummy,@dummy,@dummy,列7,@dummy,@dummy,@dummy</span>

第一部分, 是如何处理,  数据文件中, 列的数量,  大于 表的数量的情况。

假设数据文件如下:

Book1.csv

编号,名称,说明
1,测试数据1,"测试CSV文件中,有逗号"
2,测试数据2,"测试CSV文件中有""双引号"""
3,测试数据3,"测试CSV文件中,有逗号和""双引号"""
4,测试数据4,普通数据

mysql> CREATE TABLE Test_Book1 (
    ->   id    int,
    ->   name  VARCHAR(10),
    ->   data  VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.05 sec)

下面的 lines terminated by '\r\n' 是 要求换行符号,为 windows的换行
下面的 ignore 1 lines是 忽略第一行的标题行。
mysql> LOAD DATA INFILE 'f:/Book1.csv'
    -> INTO TABLE Test_Book1
    -> FIELDS TERMINATED BY ','
    -> OPTIONALLY ENCLOSED BY '"'
    -> lines terminated by '\r\n'
    -> ignore 1 lines
    -> (id, name, data);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select * from test_book1;
+------+-----------+--------------------------------+
| id   | name      | data                           |
+------+-----------+--------------------------------+
|    1 | 测试数据1 | 测试CSV文件中,有逗号           |
|    2 | 测试数据2 | 测试CSV文件中有"双引号"        |
|    3 | 测试数据3 | 测试CSV文件中,有逗号和"双引号" |
|    4 | 测试数据4 | 普通数据                       |
+------+-----------+--------------------------------+
4 rows in set (0.00 sec)

对你而言, 你需要使用
ignore 1 lines 忽略第一行的标题行。

第二部分, 是说明, 如何 排除掉标题列的情况。

时间: 2024-10-11 06:17:34

Python - mysql中导入CSV数据 【学习笔记】的相关文章

mysql SQLyog导入csv数据失败怎么办?

分享下mysql使用SQLyog导入csv数据失败的解决方法 给mysql导入数据,选中某个表选择导入--导入使用本地csv数据即可,单有的时候不知道什么问题导入不成功!!! 给mysql导入数据,使用的软件是SQLyog,相信直接导大家也都会,选中某个表选择导入--导入使用本地csv数据即可,单有的时候不知道什么问题导入不成功,可以使用命令,以此记录,以后用到便于查: (我的是windows系统)LOAD DATA LOCAL INFILE 'C:\\Users\\zl\\Desktop\\z

廖雪峰老师的python教程中的几个学习笔记的备份

首先是学习@property的笔记 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2017/5/14 22:18 # @Author : 15407_000 # @Site : # @File : 使用@property.py # @Software: PyCharm class student(object): score=10 def getscore(self): return self.score def setscore

MySQL导入csv数据

在工作中经常遇到需要往MySQL数据库中导入开发人员提供的数据,其中一种是csv格式的,导入方式如下: 创建相应的表格 mysql> use kevin; Database changed mysql> CREATE TABLE GeoPC_Places (     -> ISO varchar(2) NOT NULL,     -> Country varchar(50) NOT NULL,     -> Language varchar(2) NOT NULL,     

大数据学习笔记6&#183;社会计算中的大数据(4)

上一篇介绍了LifeSpec项目,这个项目是关于用户理解和用户画像的.这篇是社会计算部分的最后一篇,关于用户连接和图隐私. 用户连接与隐私保护 用户连接与隐私保护有很强的相关性. 上图中,左边有两个网络.对于用户连接,我们的目标是映射这两个网络和连接这些网络中的用户节点.然后,我们就能产生一个更大的网络.这样,用户就能够被连接在一起,我们就可以知道跨网络的用户信息. 但是,如果从隐私的角度来看这个问题,把第一个图看成一个匿名化处理后的图,称其为目标图:把第二张图看成辅助图或者攻击者可获得的信息.

MySQL必知必会 学习笔记(一)

第一章  了解SQL 模式:   关于数据库和表的布局以及特性的信息.[描述表可以存储什么样的数据,数据如何分解,各部分信息如何命名等等,可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)]. 第二章 MySQL简介 MySQL是一种DBMS,即它是一种数据库软件.基于客户机----服务器的数据库. MySQL工具: 1.mysql 命令行实用程序 2.MySQL Administrator 3.MySQL query Browser 第四章 检索数据 LIMIT 5 表示MySQL返

JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的文章,大多都是以罗列记忆点的形式书写的,没有谈论实现细节和逻辑原理.作为个人笔记无可厚非,但是并不利于他人学习.希望能通过这种比较“费劲”的讲解,帮助我自己.也帮助读者们更好地学习Java.掌握Java. 无论你跟我一样需要应聘,还是说在校学生学习Java基础,都对入门和进一步启发学习有所帮助.(关

Python+Mysql生成zabbix统计数据

先大概了解一下zabbix数据库结构: 1.groups表 可以根据组名查到组ID 2.找到组ID就可以根据组ID找出这个组下面的所有服务器的ID,这个关系在hosts_groups表里面: 3.有了hostid就可以在hosts表里查看这台机器的基本信息了: items表则可以根据hostid查出这台服务器的所有监控项: 4.终于在items表查到itemid,利用这个itemid在trends和trends_uint这两个表中统计出我们需要的数据 我python水平挺菜的,很多面向对象的功能

python之输入和输出(学习笔记一)

python之输入和输出(学习笔记一) 输出 用 print 加上字符串,就可以向屏幕上输出指定的文字.如下命令: print 'hello,world!' print 语句也可以跟上多个字符串,用逗号","隔开,就可以连成一串输出: print 'my name is wtf,','I am learning Python.' 在python中可以直接当做计算器来使用,举例如下: (1)基本的加减乘除余 (2)整数除法与精确除法区别: 注:因为整数除法只取结果的整数部分,要做精确的除

MySQL批量导入Excel数据

MySQL批量导入Excel数据 1.确定需要导入数据的表名称以及字段,然后在新建的Excel表中,按照表字段正确排序:(注:(Excel文件的名称最好和数据库的名称一致,sheet表的名字最好和表名称一致,方便需要导入多张表数据时一一对应)) 2.在Excel表中,正确填写需要导入的数据,一行数据对应着数据库表中的一行记录:(注:各个字段的格式要求需要和数据库中的限制一样,避免出现差错) 3.收集好需要导入的数据后,点击保存.(注:导入的时候,Excel文件处于打开状态) 4.选中需要导入数据