Mysql导入\导出数据

MySQL导出数据

1.mysql -e生成结果导入指定文件

mysql -hhostname -Pport -uusername -ppassword -e “相关mysql的sql语句” > 导出文件存储位置

例子展示:
mysql -h xxx -u xxx -pxxx -D database_name -e "select * from t_name;" > test.txt
解释:将database_name数据库的表t_name中的数据导入都test.txt
1. 若要同时显示语句本身:-v
2. 若要增加查询结果行数:-vv
3. 若要增加执行时间:-vvv
**v参数需要放在-e执行语句之后***
2.使用select … INTO OUTFILE语句导出数据
  • 格式描述:

    select [列名] from table [where 语句][order by语句] [limit 语句]

    INTO OUTFILE '目标文件' [OPTION]

    • [OPTION]参数可选参数选项:
    field terminated by '字符串' :字符串表示字段间的分割符,默认为"\t"
    field enclosed by '字符':设置字符来括住字段的值,只能为单个字符,默认不使用任何符号。
    field optionally enclosed by '字符':设置字符来括住CHAR、VARCHAR、TEXT等字段类型,默认不使用任何符号。
    field escaped by '字符':设置转义字符,只能使用单个字符,默认为"\"。
    lines starting by '字符串':设置每行开头的字符,可以为单个或多个字符。默认不使用任何符号。
    lines terminated by '字符串':设置每行数据结尾的字符,可以为单个或多个字符。默认值"\n"。
    • ‘目标文件’ 存储位置的说明:

    • 存储位置MySQL服务器端必须有写入权限并且文件不能够已经存在。

      Linux /etc/mysql/mysql.conf.d/mysqld.conf 中配置了mysql可写的位置
      [mysqld]                                                    
      #
      
      # * Basic Settings
      
      #
      secure-file-priv = ""
      user        = mysql
      pid-file    = /var/run/mysqld/mysqld.pid
      socket      = /var/run/mysqld/mysqld.sock
      port        = 3306
      basedir     = /usr
      datadir     = /var/lib/mysql
      tmpdir      = /tmp
      本例中文件可存储的位置包括datadir和tmpdir
    • 目标文件保存在MySQL服务器端

  • linux服务端举例

    select * from t_name 
    into outfile '/tmp/test.csv'
    fields 
    terminated by ',' 
    optionally enclosed by '"'
      escaped by '"' 
    lines 
    terminated by '\r\n'; 

注意:select …INTO OUTFILE语句的主要作用是可以快速的把一个表转储到服务器机器上。如果想要在服务器主机之外的客户主机上创建结果文件应该使用”mysql -e “select …”> file_name”的命令。

3.mysqldump命令导出数据

mysqldump是mysql用于转存储数据库的实用程序。转储包含创建表和/或装载表的SQL语句。

  • 格式描述:

    shell> mysqldump [options] db_name [tables] 
    shell> mysqldump [options] ---database DB1 [DB2 DB3...] 
    shell> mysqldump [options] --all--database 
  • 举例说明:

    mysqldump -h localhost -u xxx -pxxx  test  > dump.txt

MySQL导入数据

1.使用LOAD DATA导入数据
  • 格式描述:

    mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE t_name (name, age, sex)
    -> FIELDS TERMINATED BY ':'
    -> LINES TERMINATED BY '\r\n';
    
    • 指定LOCAL关键字,表示从客户主机上按路径读取文件。如果没有指定,则文件在服务器上按路径读取。
    • 可明确指出列值的分隔符和行尾标记,默认值为定位符和换行符。
    • LOAD DATA 默认插入的顺序为(name, age, sex),文件中的列和插入表中的列不一致,必须指定列的顺序。
2.使用mysqlimport导入数据

mysqlimport客户端提供了LOAD DATA INFILE 语句的命令行接口。mysqlimport的大多数选项直接对应LOAD DATA INFILE子句。

  • 举例分析:

    mysqlimport -h localhost -u xxx -pxxx --local database_name dump.txt
3.source导入数据
  • 举例:

    mysql>create database database_name;
    mysql>use database_name; 
    mysql>source  dump.txt;

参考资料

MySQL -e详解——http://blog.csdn.net/feeltouch/article/details/46643065

Mysql数据库总结——https://www.kancloud.cn/digest/mysqlsummary/132839

Mysqldump命令参数——http://blog.csdn.net/linuxlsq/article/details/52606317

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值