Mysql导入\导出数据

来源:互联网 发布:触摸屏一体机软件 编辑:程序博客网 时间:2024/06/03 18:27

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.txt1. 若要同时显示语句本身:-v2. 若要增加查询结果行数:-vv3. 若要增加执行时间:-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        = mysqlpid-file    = /var/run/mysqld/mysqld.pidsocket      = /var/run/mysqld/mysqld.sockport        = 3306basedir     = /usrdatadir     = /var/lib/mysqltmpdir      = /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

参考资料

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

原创粉丝点击