HeidiSQL- csv 表格导入数据到 DB表

一、背景

我们产品C 在测试过程中,需要创建DB表、并且需要在DB表中构造测试数据;测试数据可以通过我们测试团队开发的测试数据构造 生成csv文件,但如何将csv 中的数据插入DB表呢 ?

通过可视化的方式手动插入? 通过INSERT 语句执行插入? 通过自动化代码实现?

在时间紧张的情况下,以上方式都太费时间了!
接下来教大家通过 HeidiSQL 将 csv表格数据导入到 DB表~

二、准备

  • 数据库连接工具-HeidiSQL
  • 已在 HeidiSQL 创建对应的表 (建立好表以后就可以导入数据了)
  • csv 文件

三、步骤

1、直接准备一个csv文件 or 编辑excel,并生成csv文件,准备csv文件需要注意几个地方:

  • 1.1 如果是必填字段,一定需要有值
  • 1.2 设置单元格格式的时候不要设置为数值,不然会出现 “data truncated for column” 的错误。一般设置为常规;
  • 1.3 其他数据类型的错误,都可以尝试设置一下单元格格式;
  • 1.4 不要有多余的列
  • 1.5 把excel的列名编辑成数据库对应的字段。顺序也保持一致

在这里插入图片描述

2、打开HeidiSQL,点击菜单栏 中的“工具” - > 点击 :"导入csv文件…"
在这里插入图片描述<

### 如何将数据导入MySQL 数据库 #### 方法一:使用 `LOAD DATA INFILE` 命令 MySQL 提供了一种高效的方式,即通过 `LOAD DATA INFILE` 将 CSV 文件或其他分隔符文件数据批量加载到数据库中。此方法适用于 Excel 表格已保存为 CSV 格式的场景。 以下是具体实现步骤: 1. **准备数据源** 首先需要将 Excel 文件转换为 CSV 格式。可以利用 Microsoft Excel 或其他工具完成这一操作。 2. **创建目标结构** 确保 MySQL 中存在与 CSV 数据匹配的目标结构。例如: ```sql CREATE TABLE tb_sanyi_client ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT, email VARCHAR(255) ); ``` 3. **执行 SQL 命令** 使用以下命令将 CSV 数据导入到指定的 MySQL 中: ```sql LOAD DATA INFILE '/path/to/yourfile.csv' INTO TABLE tb_sanyi_client FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS (name, age, email); ``` 上述命令假设 CSV 文件路径位于 `/path/to/yourfile.csv`,字段由逗号 `,` 分隔,并忽略首行作为列名[^1]。 --- #### 方法二:借助第三方工具(如 Navicat、HeidiSQL) 如果不想编写复杂的 SQL 脚本,可以选择图形化的数据库管理工具来简化导入过程。Navicat 和 HeidiSQL 是常用的解决方案之一。 1. 打开工具并连接至目标 MySQL 数据库; 2. 创建对应的目标; 3. 利用工具内置的功能上传 Excel 文件CSV 文件; 4. 工具会自动解析文件内容并将数据映射到目标中。 这种方法适合不熟悉命令行操作的技术人员[^1]。 --- #### 方法三:通过 PHP 实现动态导入 对于 Web 应用程序开发而言,可能更倾向于采用编程语言处理复杂逻辑。PHP 可以轻松读取 Excel 文件并通过 API 插入数据MySQL 数据库。 下面展示了一个简单示例代码片段: ```php <?php require 'vendor/autoload.php'; // 引入 PhpSpreadsheet 类库 use PhpOffice\PhpSpreadsheet\IOFactory; // 加载 Excel 文件 $inputFileName = './sanyi.xlsx'; $spreadsheet = IOFactory::load($inputFileName); // 获取工作数据 $data = $spreadsheet->getActiveSheet()->toArray(); // 连接 MySQL 数据库 $conn = new mysqli('localhost', 'root', '', 'test_db'); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } foreach ($data as $row) { if (!empty($row[0]) && !empty($row[1])) { // 检查必要字段是否存在 $stmt = $conn->prepare("INSERT INTO tb_sanyi_client (name, age, email) VALUES (?, ?, ?)"); $stmt->bind_param("sis", $row[0], $row[1], $row[2]); $stmt->execute(); } } $stmt->close(); $conn->close(); ?> ``` 该脚本依赖于 [PhpSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet),能够有效解决因服务器配置限制而导致的问题[^3]。 --- #### 方法四:运行 SQL 脚本文件 当拥有完整的 `.sql` 文件时,可以直接将其导入MySQL 数据库中。这种方式特别适合大规模初始化环境或者迁移现有项目。 常见的导入途径包括但不限于: - 使用命令行客户端输入指令: ```bash mysql -u root -p test_db < /path/to/script.sql ``` - 在 phpMyAdmin 的界面中选择 “Import” 功能选项; 无论哪种形式都需注意权限设置以及字符集兼容性等问题[^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值