mysql加载语句的详细介绍
加载的语法复制代码代码如下所示:
负荷数据{ low_priority并发} {本地} infile'file_name .txt|
{ } |代替忽略
为表tbl_name
{领域
{终止by'string}
{ {可选}封闭by'char}
{逃by'char}
}
{线
{开始} by'string
{终止by'string}
}
{忽略数字行}
{ }(col_name_or_user_var,…)
{集col_name =表达式,…}
在LOAD DATA INFILE语句用于在高速读取文本文件的行加载到一个表。文件名必须是一个字符串。
字符集,这是由character_set_database系统变量表示,是用来说明文件中的信息,设置集名称和character_set_client不影响输入的解释。
典型的例子
复制代码代码如下所示:
负荷数据的本地infile'data tbl_name txt'into表。
字段被终止。
可选地用' ' '括起来
以结尾的行'
如果只想加载表的部分列,则应指定列的列表:
复制代码代码如下所示:
负荷数据的本地infile'persondata。txt'into PersonData(COL1,COL2)表;
文件的路径
如果指定了本地,则它被认为与连接的客户端关联:
1。如果指定了本地,则该文件由客户端主机上的客户机读取并发送到服务器。给定一个完整的路径名来指定确切位置。如果给定给定路径名,则该名称与客户端启动的目录相对应。
2。如果没有指定本地,则文件必须位于服务器主机上,并由服务器直接读取。
当文件位于服务器主机上时,服务器使用以下规则:
1)。如果给定绝对路径名,服务器使用路径名称。
2)。如果给定一个或多个引导组件的相对路径名,则服务器搜索与服务器的数据目录相关的文件。
3)。如果没有启动组件给出文件名,服务器将在默认数据库的数据库目录中找到该文件。
注意这些规则意味着指定文件。 /内容将从服务器数据目录的读取,和相同的文件名为内容将从默认的数据库的数据库目录读取。
使用客户端的绝对路径加载数据
复制代码代码如下所示:
数据加载的 / /导入数据。txt'into表db2.my_table;
使用服务器的相对路径负载数据
以下数据加载语句读取DB1数据库目录文件data.txt,因为DB1是当前数据库。即使声明显然是加载到表中的DB2数据库,它将从db1目录读取。
复制代码代码如下所示:
使用db1;
infile'data txt'into表db2.my_table负荷数据;
忽略数字行选项
忽略行选项可以用来忽略文件开头的行。
可以使用忽略1行跳过包含列名的起始行:
复制代码代码如下所示:
LOAD DATA INFILE/tmp /测试。txt'into表测试忽略1线;
取代和忽视
一些输入记录将原始记录复制到唯一的关键字值,替换和忽略关键字用于控制这些输入记录的操作。
如果指定替换,输入行将替换原来的行(换句话说,与原始行相同的行,该行与主索引或唯一索引具有相同的值)。
如果指定忽略,则跳过原行复制到惟一关键字值的输入行。
如果这两个选项没有被指定,操作取决于是否本地关键字指定的。当地方是不能用的,一个错误发生时,重复键值的出现,和其余的文本文件被忽略。利用当地时,默认的运行情况的忽视是相同;这是因为服务器没有办法阻止在运行中文件传输。
指数的影响
如果你使用LOAD DATA INFILE一空的MyISAM表,所有非唯一索引将在独立批处理创建(修表)。当你有很多指标,这往往使LOAD DATA INFILE更快。通常,负载数据文件的速度非常快,但在一些极端的情况下,你可以将文件加载到表在使用ALTER TABLE禁用按键LOAD DATA INFILE…关闭,或在加载文件后使用更改表…再次启用键创建索引,索引创建得更快。
字段和行的默认值
如果不指定字段子句,则默认值是您编写以下语句的假设值:
复制代码代码如下所示:
字段终止符 t'enclosed通过了
如果不指定行子句,则默认值是您编写以下语句的假设值:
复制代码代码如下所示:
以结尾的行'从'开始'
换句话说,当输入值的读取,默认值使LOAD DATA INFILE如下:
复制代码代码如下所示:
在新线上找到界线的边界。
跳过行前缀。
这些行被分解为选项卡中的字段。
该字段不期望包含在任何引号字符中。
有一个制表符,换行符,或在前,对字符字段值的一部分。
相反,当写入输出值时,默认值会选择…为导出的文件如下:
复制代码代码如下所示:
在字段间写入制表符。
该字段不包含在任何引号字符中。
当磁场值标签,换行符'或'当'逃跑'。
在这行的结尾写一行。
注意,写的是田野逃跑,你必须阅读指定的两个反斜杠的价值,作为一个单一的斜线。
注意:如果您在Windows系统中生成了文本文件,则可能需要使用由O结尾的行。要正确读取文件,因为Windows程序通常使用两个字符作为行终止符。程序的一部分,在编写文件时,可以使用r作为行终止符。
起跑线的选择
如果所有的行你想阅读包括常见的前缀,你想忽略,你可以use'prefix_string'to跳过前缀(和人物在前缀)。如果行不包括前缀,全线跳过。注:prefix_string出现在中间的一条线。
采取以下test.txt作为文件源
复制代码代码如下所示:
xxx 行
某事xxx 行
用以下SQL导入数据
复制代码代码如下所示:
LOAD DATA INFILE/tmp /测试。txt'into表测试线由XXX开始;
最后,我们只得到数据(行
终止线的选择
如果笑话是由%分开的行组成的,阅读包含的笑话文件,这样你就可以操作了:
复制代码代码如下所示:
LOAD DATA INFILE ' / / tmp表笑话笑话。txt'into字段终止符线终止。
终止的封闭字段选项
终止用于控制字段的定界符,该分隔符可以是若干字符。
通过应用于控制领域对报价的封闭式的,必须是一个字符,如果你忽略的话,或者,所有的字段都包含在封闭的字符串,如果你指定任选,封闭的性格只用于包含字符串数据类型(如CHAR、二进制、文本或枚举)。列中的值。
选择…到输出文件的导出数据,由',忽略可选
复制代码代码如下所示:
1
选择…到输出文件的导出数据,由',指定可选
复制代码代码如下所示:
1,一个字符串
转义是用来转义的,字段转义的值必须是单个字符。
如果字段转义字符是一个空字符,字符是没有逃脱,和零输出为零,没有 n.it是不是一个好主意,指定一个空字符,特别是如果数据的字段值包含在给定列表中的任何字符。
如果所附字符出现在字段值中,则通过使用转义字符作为前缀来转义所附字符。