简述
有时候需要往 MySQL 中导入一些 Excel 数据,下面来看看怎么操作吧!
桌面处理
打开 excel 表格-->另存为-->选择格式 (CSV 逗号分割)--->保存文件
文件名 :test.csv
转换字符集
mac 使用文本编辑打开:
- 右键点击文件
- 选择(打开方式)
- 选择(文本编辑)
- 左上角选择(文件)
- 选择(复制)
- 不要保存点击文本
- command + s 保存
- 纯文本编码选择 utf-8
- 保存即可
windows 使用记事本(Notepad):
- 打开记事本。
- 在记事本中打开要转换的文件。
- 选择 "文件" 菜单 -> "另存为"。
- 在 "编码" 下拉菜单中选择所需的字符集(例如 UTF-8)。
- 保存文件。
导入数据
-
登录 MySQL
-
检查配置
sql
# 查看 MySQL 是否开启安全目录
mysql> show global variables like 'secure_file_priv';
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ | # 如果设置了路径,只能将文件拷贝到这个目录才能导入
+------------------+-----------------------+
# 查看 MySQL 是否开启本地文件上传
mysql> show global variables like 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | OFF | # 关闭时需要开启这个参数 SET GLOBAL local_infile = 1;
+---------------+-------+
-
上传文件到mysql 服务器 的指定目录 /var/lib/mysql-files/
-
登录 MySQL 并创建表
sql
create table test(
id int ,
name varchar(11),
age int
);
- 导入数据
sql
LOAD DATA INFILE '/var/lib/mysql-files/test.csv' -- 导入的文件位置
INTO TABLE test -- 导入的表名
FIELDS TERMINATED BY ',' -- 指定字段之间的分隔符
ignore 1 lines; -- 跳过 CSV 文件开头的标题行即第一行(如果有的话)
- 检查是否导入成功
sql
mysql> select * from test;
+------+-------+------+
| id | name | age |
+------+-------+------+
| 1 | test1 | 12 |
| 2 | test2 | 13 |
| 3 | test3 | 14 |
| 4 | test4 | 15 |
| 5 | test5 | 16 |
+------+-------+------+
5 rows in set (0.00 sec)