美文网首页
15、MySQL导入数据

15、MySQL导入数据

作者: 一个反派人物 | 来源:发表于2021-05-31 17:01 被阅读0次

1 LOAD DATA INFILE

使用LOAD DATA INFILE用于向mysql中导入表格数据,表格数据可以是任意格式,一般是CSV格式。

使用语法:

LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL]
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT}
        [, col_name={expr | DEFAULT}] ...]

参数解释如下

1.1 LOW_PRIORITY

只对那些只采用了表级别锁(如MYISAM)的引擎有影响,比如InnoDB使用的是行锁,不受这个影响,具体的来说,使用了LOW_PRIORITY,则本操作会在其它线程完成之后再操作。

1.2 CONCURRENT

和其它线程同时进行,这个对性能是有一些影响。

1.3 LOCAL

文件的位置,简单的说,如果指定了local,则表示文件位于客户端,如果没有,则表示文件在Server端。

1.4 REPLACE | IGNORE

数据库中的数据跟导入的数据有惟一性冲突的时候,采用什么样的方式,是替换已有还是忽略当前。特别需要说明的是,当这两种方式都未指定时,如果数据来自于客户端,则重复的数据会忽略,如果来源于服务端,则命令将终止执行。

1.5 CHARACTER SET

指定文件的编码集

1.6 [{FIELDS | COLUMNS} [TERMINATED BY 'string'][[OPTIONALLY] ENCLOSED BY 'char'][ESCAPED BY 'char']]

指定了对于字段的处理方式:

  1. FIELDSCOLUMNS指定其中一个即可。
  2. TERMINATED表示字段间的分隔符,
  3. ENCLOSED BY的意思是字段值由什么符号包围,
  4. ESCAPED表示指定转义字符。

在不指定这个参数的情况下,默认的字段分隔符是\t, 默认字段值无任何值包围,默认转义字符为\

1.7 [LINES [STARTING BY 'string'] [TERMINATED BY 'string']]

指定每一行的起始符与终止符,默认情况下,起始符为空,终止符为\n,对于windows产生的文本文件来说,需要指定换行符为\r\n

1.8 IGNORE number LINES

忽略导入文件中的前 number 行,通常情况下,如果文件的第1行为列名,要忽略列名,这儿的值设置为1即可。

1.9 [(col_name_or_user_var,…)]

有的时候我们不需要给所有的字段都填充值,这个时候就可以指定列名,以()将列名括起来。

相关文章

网友评论

      本文标题:15、MySQL导入数据

      本文链接:https://www.haomeiwen.com/subject/cvzvsltx.html