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 有很多短板:
- 无法确定是空字符串,还是 null;
- 如果 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);
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!