批处理输入数据
幸运的是,MySQL为批处理输入数据提供了许多方法,使向表中添加数据更容易。1。基本语法
语法:负荷数据{本地} infile'file_name .txt{ }为表tbl_name代替忽略负荷数据| infile语句从高速到表的一个文本文件。如果本地关键字指定的文件从客户端读取。如果当地没有指定,文件必须在服务器上。(当地有mysql3.22.6或以后的版本。)
出于安全原因,读取服务器上的文本文件时,该文件必须在数据库目录或可以被任何人读取。此外,为了使用LOAD DATA INFILE对服务器上的文件,你必须对服务器主机的文件权限。详见第七章数据库安全。
替换和忽略关键词控制存在独特的关键记录重复处理。如果你指定的更换,新的线路将具有相同的独特的核心价值取代现有的线。如果指定了忽略,跳过现有的线路,有一个关键线路的重复。如果你不指定任何的选项,出现错误时,关键是发现和重复的文本文件的其余部分被忽略。
如果使用本地关键字从本地文件加载数据,服务器不能停止在操作中间文件的传输,因此默认行为类似于忽略指定。
2,搜查文件的原则
当在服务器主机上查找文件时,服务器使用以下规则:
如果给定绝对路径名,则服务器使用路径名。
如果使用一个或多个前端组件给出相对路径名,服务器将搜索与服务器数据目录相关的文件。
如果您给出了一个没有预成分的文件名,服务器将查找当前数据库的数据库目录中的文件。
注意这些规则意味着文件的内容,或是从服务器的数据目录中读取文件内容,并给出的是从当前数据库的数据库目录读。还要注意以下哪项陈述是为db1文件数据库目录的读,不是DB2:
MySQL >使用db1;
MySQL > LOAD DATA INFILE 。 /数据.txt为表db2.my_table;
3、字段和行子句的语法
如果指定字段子句,则每个子子句(由、包含的、终止的)都是可选的,除非您必须指定其中至少一个子句。
如果不指定字段子句,则默认值与写此值相同:
字段终止符 t'enclosed通过了
如果不指定行子句,则默认值与写此值相同:
以结尾的行'
换句话说,当默认值导致的读取输入,LOAD DATA INFILE表现如下:
在一个换行符找到线
在定位器中划分字段
不要期望字段被任何引号字符封装。
一部分文字字符说明字段的值由一个定位器,换行符,或 /。
LOAD DATA INFILE可以用来读取从外部来源获得的文件。例如,一个数据库格式的文件将有一场由一个逗号分开,用双引号。如果文件中的行由换行符终止,命令显示在显示领域和行处理选项,您将使用加载文件:
MySQL > infile'data txt'into表tbl_name负荷数据。
以' ' '结尾的字段
以结尾的行';
任何字段或行的处理选项可以指定一个空字符串()。如果不是空的,价值领域{可选}包围和场逃出来的必须是一个字符,字段终止符和线端可不止一个字符的值。例如,写一行终止回车线(CR + LF),或阅读包含这些行文件,指定线路用终止 R条款。
控制字段包围的字段{ } },用于输出(选择)…为导出的文件),如果省略可选,所有字段都由封闭的人物包围。这样一个输出的一个例子(用逗号作为字段分隔符)显示如下:
1
2
3
4
如果你指定了可选的,封闭的性格只用于包围的CHAR和VARCHAR字段:
1,一个字符串
2,包含逗号的字符串
3包含引号的字符串
4包含一个字符串
Note that the appearance of the ENCLOSED BY character in a field value is escaped by using the ESCAPED BY character as its prefix.It is also important to note that if you specify an empty ESCAPED BY value, you may produce output that can not be read correctly by LOAD DATA INFILE.For example, if the escape character is empty, the output displayed above shows the following.Notice that the second field in the fourth line contains a comma that follows the quotation mark, which is (erroneously) as if to terminate the field:
1,一个字符串
2,包含逗号的字符串
3包含引号的字符串
4,包含的字符串
字段通过控件转义如何写入或读取特殊字符。如果字符转义的字段不是空的,则用于在输出中对下列字符进行前缀:
字符转义字段
字段(可选})由字符括起来
终止的字段值的第一个字符和终止的行。
ASCII码0(其实后来转义字符用ASCII 0,不是一个零字节)。
如果字符转义的字段是空的,则没有转义字符。指定空转义字符可能不是个好主意,尤其是如果数据中的字段值包含表中的任何字符。
输入,如果字段转义字符是不是空的,这个角色的出现了,随后的字符是字面上的字段值的一部分。一个例外是一种逃避0或N(即 0
,如果转义字符是)。这些序列解释为ASCII码0(零值字节)和空。看到下面的空的处理规则。
总结
为数据库加载数据是管理员的重要职责之一,由于它的重要性,MySQL提供的方法也非常多样化:
1。使用插入、替换语句
2。使用插入/替换…SELECT语句
三.Use the LOAD DATA INFILE statement
4。使用该实用程序mysqlimport