txt存入mysql和csv_mysql导入数据方法(txt,csv)

本文详细介绍了如何使用mysqlimport和loaddata命令在MySQL中导入txt和csv文件,包括处理重复主键、跳过文件行等操作,并通过实例展示了如何将Windows本地文件导入数据库。同时,提供了预处理文件数据并导入到符合特定表结构的示例。
摘要由CSDN通过智能技术生成

本文章介绍了利用 mysqlimport命令来实现数据导入方法,包括txt,csv,.sql的文件的操作,有需要了解的同学可参考一下。

mysqlimport

示例

mysqlimport -uroot -p123456 test /tmp/mytbl.txt;

约定:文件名的最后一部分为表名,以上语句导入到表mytbl

mysqlimport必须指定,以上语句数据库为test

导入csv

mysqlimport -uroot -p --local --lines-terminated-by="rn" --fields-terminated-by="," --fields-enclosed-by=""" test /tmp/mytbl.csv

load data

示例

mysql> load data infile '/tmp/mytbl.txt' into table mytbl

load data可以不指定数据库

以上语句中,mysql必须有/tmp/的读权限

导入csv

mysql> load data infile '/tmp/mytbl.csv' into table mytbl fields terminated by ',' enclosed by '"' lines terminated by 'rn'

处理重复主键

替换已有值

mysql> load data infile '/tmp/mytbl.txt' replace into table mytbl fields terminated by 't' lines terminated by 'n'

表中已有则不导入

mysql> load data infile '/tmp/mytbl.csv' ignore into table mytbl fields terminated by ',' enclosed by '"' lines terminated by 'rn'

跳过文件行

以下示例为跳过第一行

mysql> load data infile '/tmp/mytbl.txt' into table mytbl ignore 1 lines;

预处理

文件data.txt内容:

Date Time Name Weight State

2006-09-01 12:00:00 Bill Wills 200 Nevada

2006-09-02 09:00:00 Jeff Deft 150 Oklahoma

2006-09-04 03:00:00 Bob Hobbs 225 Utah

2006-09-07 08:00:00 Hank Banks 175 Texas

文件必须被加载入如下的表

create table tbl

(

dt datetime,

last_name char(10),

first_name char(10),

weight_kg float,

st_abbrev char(2)

)

create table states

(

name varchar(20),

shortname char(2)

)

states 表中内容:

name shortname

Nevada NV

Oklahoma OK

Utah UT

Texas TX

insert into states

values('Nevada','NV')

,('Oklahoma','OK')

,('Utah', 'UT')

,('Texas', 'TX')

导入:

load data infile '/tmp/data.txt' into table tbl

ignore 1 lines

(@date,@time,@name,@weight_lb,@state)

set dt=concat(@date,' ',@time),

first_name=substring_index(@name,' ',1),

last_name=substring_index(@name,' ',-1),

weight_kg=@weight_lb * .454,

st_abbrev = (select shortname from states where name=@state);

结果:

mysql> select * from tbl; +---------------------+-----------+------------+-----------+-----------+

| dt | last_name | first_name | weight_kg | st_abbrev |

+---------------------+-----------+------------+-----------+-----------+

| 2006-09-01 12:00:00 | Wills | Bill | 90.8 | NV |

| 2006-09-02 09:00:00 | Deft | Jeff | 68.1 | OK |

| 2006-09-04 03:00:00 | Hobbs | Bob | 102.15 | UT |

| 2006-09-07 08:00:00 | Banks | Hank | 79.45 | TX |

+---------------------+-----------+------------+-----------+-----------+

将windows本地文件导入到下的mysql数据库,加local

load data local infile 'C:/mytbl.txt' into table mytbl fields terminated by 't' lines terminated by 'rn'

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Python存储CSV文件到MySQL之前,我们需要安装pymysql或者MySQL驱动程序,这些库可以使用“pip install pymysql”或“pip install mysql-connector-python”安装。 接下来,我们需要连接到MySQL数据库并创建一个表来存储CSV数据。 我们可以使用以下Python代码来连接并创建一个名为“mytable”的表: ``` import pymysql # 连接到数据库 conn = pymysql.connect(host='localhost', user='root', password='password', db='mydatabase') # 获取游标 cursor = conn.cursor() # 创建表 stmt = "CREATE TABLE mytable (id INT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))" cursor.execute(stmt) # 关闭游标和连接 cursor.close() conn.close() ``` 接下来,我们需要将CSV文件中的数据导入表中。我们可以读取CSV文件,当每一行的数据插入到MySQL表中。以下是代码示例: ``` import csv import pymysql # 连接到数据库 conn = pymysql.connect(host='localhost', user='root', password='password', db='mydatabase') # 获取游标 cursor = conn.cursor() # 打开CSV文件 with open('data.csv', 'r') as csvfile: reader = csv.reader(csvfile) next(reader) # 忽略 CSV 文件的标题行 for row in reader: # 插入数据MySQL 表 stmt = "INSERT INTO mytable (id, name, email) VALUES (%s, %s, %s)" cursor.execute(stmt, (int(row[0]), row[1], row[2])) # 提交到数据库并关闭连接 conn.commit() cursor.close() conn.close() ``` 这个例子中,我们使用了Python的csv库来读取CSV文件中的数据,并使用INSERT语句将数据插入到已经创建的MySQL表中。最后,我们提交更改并关闭与MySQL数据库的连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值