mysql - 导入导出数据

导入 sql 文件

导入 sql 文件,需要登录 mysql 之后执行。

source D:/xxx/xxx/back.sql;

导出 sql 文件

需要进入主程序的 bin 目录下执行。

# host          IP地址
# username      是 MySQL 数据库的用户名,
# database_name 是需要导出的数据库的名称。

# 导出 mysql 所有库
mysqldump -u [username] -p --all-databases > backup.sql
mysqldump -h [host] -u [username] -p --all-databases > backup.sql

# 导出整个数据库,在运行此命令时,您将需要输入密码。
mysqldump -h [host] -u [username] -p [database_name] >backup.sql 
   
   
# 导出指定表:table1、table2 和 table3。
mysqldump -u [username] -p [database_name] table1 table2 table3 >backup.sql
   
   
# 导出表结构,不包含数据。
mysqldump -u [username] -p --no-data [database_name] [table_name] >backup.sql 
   

# 高版本的 mysql 可能会报错: Unknown table 'column_statistics' in information_schema
# 这种情况下,在命令中增加:--column-statistics=0
mysqldump --column-statistics=0 -h localhost -u root -p med >D://backup.sql

载入 csv

载入文件需要使用 LOAD DATA INFILE 语句。

老旧系统偶尔会见到,使用次数很低,因为 csv 有很多短板:

  1. 无法确定是空字符串,还是 null;
  2. 如果 10 列只要导入 5 列,存在不需要的字段,脚本很难写。

样例 A:

LOAD DATA INFILE 'filename.txt'
INTO TABLE mytable
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

样例 B:

LOAD DATA INFILE 'filename.txt'
INTO TABLE mytable
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(column1, column2, column3);

posted on 2023-09-12 11:18  疯狂的妞妞  阅读(39)  评论(0编辑  收藏  举报

导航