txt文档内容入mysql

本文介绍如何使用MySQL的LOAD DATA INFILE命令从TXT文件导入数据,并展示了一个案例,即如何通过SQL查询自动补全Excel表格中的日期,同时设置未出现的其他字段默认值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、将txt文档内容入mysql(一定要注意编码问题和换行符(\r)问题)

LOAD DATA LOCAL INFILE 'D:/a.txt' INTO TABLE db.`test` FIELDS TERMINATED BY '\t';

二、自动补全excel表中的日期,其他字段默认为0或是其他

源数据:


目标结果数据:


1、先将excel中数据copy至txt,之后通过mysql的load命令将数据存储至mysql,采用左连接或右连接的方式拼接

CREATE TABLE `test` (
  `date` varchar(30) DEFAULT NULL,
  `country` varchar(100) DEFAULT NULL,
  `nopin` int(11) DEFAULT NULL,
  `count` int(11) DEFAULT NULL,
  `pin_rate` double DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8

CREATE TABLE `test2` (
  `date` VARCHAR(30) DEFAULT NULL,
  `country` VARCHAR(100) DEFAULT NULL,
  `nopin` INT(11) DEFAULT NULL,
  `count` INT(11) DEFAULT NULL,
  `pin_rate` DOUBLE DEFAULT NULL
) ENGINE=MYISAM DEFAULT CHARSET=utf8

SELECT 
  x.date,
  x.country,
  x.nopin,
  x.count,
  x.pin_rate 
FROM
  (SELECT 
    STR_TO_DATE(b.date, '%Y/%m/%d') DATE,
    IF(a.country IS NULL, 'ko', a.country) country,
  
   IF(a.nopin IS NULL, 0, a.nopin) nopin,
   
    IF(a.count IS NULL, 0, a.count) COUNT,
   IF(a.pin_rate IS NULL, 0, a.pin_rate) pin_rate,
    b.adt1,
    b.adt2 
  FROM
    (SELECT 
      DATE,
      country,
      nopin,
      COUNT,
      pin_rate 
    FROM
      test 
    WHERE country = 'ko') a 
    RIGHT JOIN 
      (SELECT 
        DATE,
        (SELECT 
          MIN(STR_TO_DATE(DATE, '%Y/%m/%d')) 
        FROM
          test 
        WHERE country = 'ko') AS adt1,
        (SELECT 
          MAX(STR_TO_DATE(DATE, '%Y/%m/%d')) 
        FROM
          test 
        WHERE country = 'ko') AS adt2 
      FROM
        test2) b 
      ON a.date = b.date) X
WHERE x.date BETWEEN x.adt1 
  AND x.adt2 



TXT文件的内容MySQL数据库涉及到几个步骤,首先你需要读取TXT文件,然后清洗和解析数据,最后将数据插到数据库中。以下是基本流程: 1. **读取TXT文件**: 使用Python的内置模块`open()`打开TXT文件,可以逐行读取内容,例如: ```python with open('yourfile.txt', 'r') as file: lines = file.readlines() ``` 2. **清洗和预处理数据**: - 检查每行是否适合插数据库(例如去除空行、特殊字符) - 根据数据格式将其分割成字段,如果每个字段对应数据库表的一列,如姓名和邮箱: ```python data_list = [line.strip().split(',') for line in lines if line] ``` 3. **连接到MySQL数据库**: 使用`pymysql`或`mysql-connector-python`这样的库连接MySQL服务器: ```python import pymysql db = pymysql.connect(host='localhost', user='your_username', password='your_password', database='your_database') cursor = db.cursor() ``` 4. **插数据**: 遍历`data_list`,将每一行的数据插到对应的数据库表中,可能需要根据实际情况调整SQL语句: ```python for row in data_list: sql = f"INSERT INTO your_table_name (column1, column2) VALUES (%s, %s)" values = (row[0], row[1]) # 举例,假设第一列和第二列是你想要插的字段 cursor.execute(sql, values) # 提交事务,保存更改 db.commit() ``` 5. **关闭连接**: 完成所有操作后记得关闭连接: ```python cursor.close() db.close() ``` 注意:这只是一个基础示例,实际操作可能需要根据TXT文件的具体结构和数据库表的字段调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东境物语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值