导入导出csv文件

  • 常用参数
    1
    2
    3
    4
    5
    常用参数(导入和导出的语法一样):

    FIELDS TERMINATED BY ',':指定字段分隔符
    OPTIONALLY ENCLOSED BY '"':认为双引号中的是一个独立的字段。Excel 转 CSV 时,有特殊字符(逗号、顿号等)的字段,会自动用双引号引起来
    LINES TERMINATED BY '\n':指定行分隔符,默认'\n'。注意,在 Windows 平台上创建的文件,分隔符是 '\r\n'
  • 先检查是否开启允许导入
    1
    show variables like '%secure%';

导入

1
2
3
4
5
6
7
8
LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE db2.my_table;
LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE db2.my_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';

示例:
load data local infile '/data1/mysql_root/data/20132/test.csv'
into table t_bi_partsku character set gb2312
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n';

导出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT ... INTO var_list    # 将字段的值保存到变量中
SELECT ... INTO OUTFILE # 将选中的行保存到文件中。可以指定列和行的结束符,以生成指定格式的文件。
SELECT ... INTO DUMPFILE # 将一个单独的行写入文件中,没有格式

示例:
mysql > SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;

mysql> SELECT * INTO OUTFILE '/var/lib/mysql-files/1.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM professions;
Query OK, 2220 rows affected (0.04 sec)

导出sql文件

导出

  1. 导出整个数据库
    1
    2
    mysqldump -h${host} -P${port} -u用户名 -p密码 数据库名 > 导出的文件名
    mysqldump -uroot -pmysql sva_rec > e:\sva_rec.sql
  2. 导出一个表,包括表结构和数据
    1
    2
    mysqldump -h${host} -P${port}  -u用户名 -p密码 数据库名 表名 > 导出的文件名
    mysqldump -uroot -pmysql sva_rec date_rec_drv> e:\date_rec_drv.sql
  3. 导出一个数据库结构
    1
    mysqldump -h${host} -P${port}  -uroot -pmysql -d sva_rec > e:\sva_rec.sql
  4. 导出一个表,只有表结构
    1
    2
    mysqldump -h${host} -P${port}  -u用户名 -p密码 -d 数据库名 表名> 导出的文件名
    mysqldump -h${host} -P${port} -uroot -pmysql -d sva_rec date_rec_drv> e:\date_rec_drv.sql
  5. 从a数据源导入测试表到b数据源
    1
    2
    3
    mysqldump --single-transaction --set-gtid-purged=off 
    -h${a数据源host} -u${a数据源用户名} -P${a数据源端口} -p${a数据源密码} a数据源数据库 a数据源表
    --add-drop-table | mysql -h${b数据源host} -u${b数据源用户名} -P${b数据源端口} -p${b数据源密码} b数据源数据库

导入

1
2
3
4
mysql -h${host} -P${port}  -uroot -pmysql
use 数据库
# 然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
source d:\wcnc_db.sql