• MySQL select into outfile 和 load data infile数据跨库转移


    select into outfile用法

    SELECT ... FROM TABLE_A
    INTO OUTFILE "/path/to/file"
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '
    ';

    MySQL中,可以使用SELECT...INTO OUTFILE语句将表的内容导出为一个文本文件。其基本的语法格式如下:

    SELECT [列名] FROM table [WHERE 语句]
            INTO OUTFILE '目标文件' [OPTION];

    该语句分为两个部分。前半部分是一个普通的SELECT语句,通过这个SELECT语句来查询所需要的数据;

    后半部分是导出数据的。其中,“目标文件”参数指出将查询的记录导出到哪个文件中;

    “OPTION”参数为可选参数选项,其可能的取值有:

    • FIELDS TERMINATED BY '字符串':设置字符串为字段之间的分隔符,可以为单个或多个字符。默认值是“ ”。
    • FIELDS ENCLOSED BY '字符':设置字符来括住字段的值,只能为单个字符。默认情况下不使用任何符号。
    • FIELDS OPTIONALLY ENCLOSED BY '字符':设置字符来括住CHAR、VARCHAR和TEXT等字符型字段。默认情况下不使用任何符号。
    • FIELDS ESCAPED BY '字符':设置转义字符,只能为单个字符。默认值为“”。
    • LINES STARTING BY '字符串':设置每行数据开头的字符,可以为单个或多个字符。默认情况下不使用任何字符。
    • LINES TERMINATED BY '字符串':设置每行数据结尾的字符,可以为单个或多个字符。默认值是“ ”。

    FIELDS和LINES两个子句都是自选的,但是如果两个子句都被指定了,FIELDS必须位于LINES的前面。

    注意:

    该语法中的“目标文件”被创建到服务器主机上,因此必须拥有文件写入权限(FILE权限)后,才能使用此语法。同时,“目标文件”不能是一个已经存在的文件。

    SELECT...INTO OUTFILE语句可以非常快速地把一个表转储到服务器上。如果想要在服务器主机之外的部分客户主机上创建结果文件,则不能使用SELECT...INTO OUTFILE语句。

    load data infile用法

    LOAD DATA INFILE "/path/to/file" INTO TABLE table_name;
    注意:如果导出时用到了FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '
    '语句,那么LOAD时也要加上同样的分隔限制语句。还要注意编码问题。

    举个栗子:

    导出example数据库下employee表的记录。其中,字段之间用“、”隔开,字符型数据用双引号括起来。每条记录以“>”开头。SQL代码如下:

    SELECT * FROM example.employee INTO OUTFILE 'D:/tmp/emp.txt'
        FIELDS
            TERMINATED BY ''
            OPTIONALLY ENCLOSED BY '"'
        LINES
            STARTING BY '>'
            TERMINATED BY '
    ';

    FIELDS必须位于LINES的前面,多个FIELDS子句排列在一起时,后面的FIELDS必须省略;同样,多个LINES子句排列在一起时,后面的LINES也必须省略。

    如果在employee表中包含了中文字符,需要注明编码格式, CHARACTER SET gbk|utf8 语句,SQL代码如下:

    SELECT * FROM example.employee INTO OUTFILE 'F:/tmp/emp.txt'
        
    CHARACTER SET utf8
    
        FIELDS
            TERMINATED BY ''
            OPTIONALLY ENCLOSED BY '"'
        LINES
            STARTING BY '>'
            TERMINATED BY '
    ';

    “TERMINATED BY ' '”可以保证每条记录占一行。因为Windows操作系统下“ ”才是回车换行。如果不加这个选项,默认情况只是“ ”

  • 相关阅读:
    HTML5中的Range对象的研究
    浅谈移动端开发页面
    你所不了解的javascript操作DOM的细节知识点(一)
    理解Javascript的动态语言特性
    webview与JS的交互
    javascript客户端检测技术
    逐渐深入地理解Ajax
    html5获取地理位置信息API
    Javascript中的Form表单知识点总结
    go语言基础之不同目录
  • 原文地址:https://www.cnblogs.com/tijun/p/8671217.html
Copyright © 2020-2023  润新知