MYSQL数据库mysql load语句的用法详解
《MYSQL数据库mysql load语句的用法详解》要点: MYSQL必读本节内容: MYSQL必读一,load语法结构 ??? [REPLACE | IGNORE] ??? INTO TABLE tbl_name ??? [FIELDS ??????? [TERMINATED BY 'string'] ??????? [[OPTIONALLY] ENCLOSED BY 'char'] ??????? [ESCAPED BY 'char' ] ??? ] ??? [LINES ??????? [STARTING BY 'string'] ??????? [TERMINATED BY 'string'] ??? ] ??? [IGNORE number LINES] ??? [(col_name_or_user_var,...)] ??? [SET col_name = expr,...)] ? MYSQL必读LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并装入一个表中.文件名称必须为一个文字字符串. MYSQL必读由character_set_database系统变量指示的字符集被用于解释文件中的信息.SET NAMES和character_set_client的设置不会影响对输入的解释. MYSQL必读例子: FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY 'n' MYSQL必读如果只想载入一个表的部分列,则应指定一个列清单: MYSQL必读二,文件的路径 MYSQL必读?如果指定了LOCAL,则文件会被客户主机上的客户端读取,并被发送到服务器.文件会被给予一个完整的路径名称,以指定确切的位置.如果给定的是一个相对的路径名称,则此名称会被理解为相对于启动客户端时所在的目录. MYSQL必读当在服务器主机上为文件定位时,服务器使用以下规则: MYSQL必读注意,这些规则意味着名为./myfile.txt的文件会从服务器数据目录中被读取,而名为myfile.txt的同样的文件会从默认数据库的数据库目录中读取. MYSQL必读三,从客户端使用绝对路径load数据 ? MYSQL必读四,从服务器里使用相对路径load数据 MYSQL必读例子: LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table; ? MYSQL必读五,IGNORE number LINES选项 MYSQL必读可以使用IGNORE 1 LINES来跳过一个包含列名称的起始标题行: MYSQL必读如果指定了REPLACE,则输入行会替换原有行(换句话说,与原有行一样,对一个主索引或唯一索引具有相同值的行). MYSQL必读如果指定IGNORE,则把原有行复制到唯一关键字值的输入行被跳过. MYSQL必读如果这两个选项都不指定,则运行情况根据LOCAL关键词是否被指定而定.不使用LOCAL时,当出现重复关键字值时,会发生错误,并且剩下的文本文件被忽略.使用LOCAL时,默认的运行情况和IGNORE被指定时的情况相同;这是因为在运行中间,服务器没有方法中止文件的传输. MYSQL必读七,索引的影响 MYSQL必读当有许多索引时,这通常会使LOAD DATA INFILE大大加快.通常,LOAD DATA INFILE的速度会非常快,但是在某些极端情况下,可以在把文件载入到表中之前使用ALTER TABLE...DISABLE KEYS关闭LOAD DATA INFILE,或者在载入文件之后使用ALTER TABLE...ENABLE KEYS再次创建索引,使创建索引的速度更快. MYSQL必读八,FIELDS和LINES的默认值 ? MYSQL必读如果不指定LINES子句,则默认值为假设写下如下语句时的值: MYSQL必读换句话说,当读取输入值时,默认值会使LOAD DATA INFILE按如下方式运行: MYSQL必读在字段之间写入制表符. MYSQL必读备注:如果已经在WINDOWS系统中生成了文本文件,可能必须使用LINES TERMINATED BY ‘rn’来正确地读取文件,因为Windows程序通常使用两个字符作为一个行终止符.部分程序,当编写文件时,可能会使用r作为行终止符.要读取这样的文件,应使用LINES TERMINATED BY ‘r’. MYSQL必读九,STARTING? LINES选项 MYSQL必读以下面的test.txt为文件源 something xxx"row",2 ? MYSQL必读使用以下sql导入数据: MYSQL必读最后并只得到数据("row",1)和("row",2). MYSQL必读十一,TERMINATED LINES选项 MYSQL必读十二,TERMINATED,ENCLOSED,ESCAPED FIELD选项 MYSQL必读ENCLOSED BY用于用于控制字段的引号,必须为单一字符,如果忽略了词语OPTIONALLY,则所有的字段都被包含在ENCLOSED BY字符串中,如果指定了OPTINALLY,则ENCLOSED BY字符只被用于包含具有字符串数据类型(比如CHAR,BINARY,TEXT或ENUM)的列中的值. MYSQL必读SELECT...INTO OUTFILE导出数据,ENCLOSED BY '"',忽略OPTIONALLY MYSQL必读"1","a string","100.20" MYSQL必读1,100.20 MYSQL必读如果FIELDS ESCAPED BY字符为空字符,则没有字符被转义,并且NULL被作为NULL输出,而不是N.去指定一个空的转义符不是一个好方法,特别是如果数据的字段值包含任何刚给定的清单中的字符时,更不能这么做. MYSQL必读如果在字段值内出现ENCLOSED BY字符,则通过使用ESCAPED BY字符作为前缀,对ENCLOSED BY字符进行转义. MYSQL必读以上为大家详细介绍了mysql load语句的用法,希望对大家有所赞助. 欢迎参与《MYSQL数据库mysql load语句的用法详解》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |