mysql使用LOAD语句批量录入数据方法(2)

来源:asp之家 时间:2010-03-09 16:31:00 

3、FIELDS和LINES子句的语法

如果你指定一个FIELDS子句,它的每一个子句(TERMINATED BY, [OPTIONALLY] ENCLOSED BY和ESCAPED BY)也是可选的,除了你必须至少指定他们之一。

如果你不指定一个FIELDS子句,缺省值与如果你这样写的相同:

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'

如果你不指定一个LINES子句,缺省值与如果你这样写的相同:

LINES TERMINATED BY '\n'

换句话说,缺省值导致读取输入时,LOAD DATA INFILE表现如下:

在换行符处寻找行边界

在定位符处将行分进字段

不要期望字段由任何引号字符封装

将由“\”开头的定位符、换行符或“\”解释是字段值的部分字面字符

LOAD DATA INFILE能被用来读取从外部来源获得的文件。例如,以dBASE格式的文件将有由逗号分隔并用双引号包围的字段。如果文件中的行由换行符终止,下面显示的命令说明你将用来装载文件的字段和行处理选项:

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE tbl_nameFIELDS TERMINATED BY ',' ENCLOSED BY '"'LINES TERMINATED BY '\n';

任何字段或行处理选项可以指定一个空字符串('')。如果不是空,FIELDS [OPTIONALLY] ENCLOSED BY和FIELDS ESCAPED BY值必须是一个单个字符。FIELDS TERMINATED BY和LINES TERMINATED BY值可以是超过一个字符。例如,写入由回车换行符对(CR+LF)终止的行,或读取包含这样行的一个文件,指定一个LINES TERMINATED BY '\r\n'子句。

FIELDS [OPTIONALLY] ENCLOSED BY控制字段的包围字符。对于输出(SELECT ... INTO OUTFILE),如果你省略OPTIONALLY,所有的字段由ENCLOSED BY字符包围。对于这样的输出的一个例子(使用一个逗号作为字段分隔符)显示在下面:

"1","a string","100.20"

"2","a string containing a , comma","102.20"

"3","a string containing a \" quote","102.20"

"4","a string containing a \", quote and comma","102.20"

如果你指定OPTIONALLY,ENCLOSED BY字符仅被用于包围CHAR和VARCHAR字段:

1,"a string",100.20

2,"a string containing a , comma",102.20

3,"a string containing a \" quote",102.20

4,"a string containing a \", quote and comma",102.20

注意,一个字段值中的ENCLOSED BY字符的出现通过用ESCAPED BY字符作为其前缀来转义。也要注意,如果你指定一个空ESCAPED BY值,可能产生不能被LOAD DATA INFILE正确读出的输出。例如,如果转义字符为空,上面显示的输出显示如下。注意到在第四行的第二个字段包含跟随引号的一个逗号,它(错误地)好象要终止字段:

1,"a string",100.20

2,"a string containing a , comma",102.20

3,"a string containing a " quote",102.20

4,"a string containing a ", quote and comma",102.20

FIELDS ESCAPED BY控制如何写入或读出特殊字符。如果FIELDS ESCAPED BY字符不是空的,它被用于前缀在输出上的下列字符:

FIELDS ESCAPED BY字符

FIELDS [OPTIONALLY] ENCLOSED BY字符

FIELDS TERMINATED BY和LINES TERMINATED BY值的第一个字符

ASCII 0(实际上将后续转义字符写成 ASCII'0',而不是一个零值字节)

如果FIELDS ESCAPED BY字符是空的,没有字符被转义。指定一个空转义字符可能不是一个好主意,特别是如果在你数据中的字段值包含刚才给出的表中的任何字符。

对于输入,如果FIELDS ESCAPED BY字符不是空的,该字符的出现被剥去并且后续字符在字面上作为字段值的一个部分。例外是一个转义的“0”或“N”(即,\0或\N,如果转义字符是“\”)。这些序列被解释为ASCII 0(一个零值字节)和NULL。见下面关于NULL处理的规则。

总结

为数据库装载数据是管理员的重要职责之一,正因为重要,所以MySQL提供的方法也是非常繁多。其中主要的在本节已经列举:

1、使用INSERT、REPLACE语句

2、使用INSERT/REPLACE…SELECT语句

3、使用LOAD DATA INFILE语句

4、使用实用程序mysqlimport


标签:mysql,批量,数据,LOAD语句
0
投稿

猜你喜欢

  • FileSystem对象常用的文件操作函数有哪些?

    2009-11-01 15:11:00
  • js中的for如何实现foreach中的遍历

    2024-04-29 13:19:37
  • Python字典删除键值对和元素的四种方法(小结)

    2021-06-12 22:58:24
  • OBJECTPROPERTY与sp_rename更改对象名称的介绍

    2012-01-29 18:04:39
  • PHP实现执行外部程序的方法详解

    2023-09-08 02:03:46
  • python+opencv实现文字颜色识别与标定功能

    2023-09-05 02:25:27
  • python为图片和PDF去水印详解

    2023-06-28 14:09:43
  • 利用Python生成随机验证码详解

    2021-10-04 19:55:50
  • python文件操作的简单方法总结

    2023-11-20 06:31:02
  • [原创][分享]数字格式化转换

    2011-07-04 12:20:15
  • SQL 2005 sa islock用户不能正常登录的现象

    2008-12-05 15:49:00
  • ASP.NET数据库操作类实例

    2024-01-12 21:01:07
  • 利用pandas读取中文数据集的方法

    2021-11-23 12:33:48
  • SQL Server 2008主要功能在兼容性上的问题

    2009-03-25 16:43:00
  • Linux中将txt导入到mysql的方法教程

    2024-01-12 13:04:27
  • Python必备技能之debug调试教程详解

    2023-03-01 19:26:10
  • jupyter notebook读取/导出文件/图片实例

    2022-01-05 00:28:45
  • 解析isset与is_null的区别

    2023-11-21 16:11:44
  • Reflow

    2009-10-25 12:34:00
  • BeautifulSoup获取指定class样式的div的实现

    2023-05-10 20:39:14
  • asp之家 网络编程 m.aspxhome.com