在mysql使用过程中,我往往使用“load data infile”和“select into outfile”这两种功能来快速“搬运”数据。细心的童鞋会发现这两种SQL语句都有:
line terminated by 'string'
fields terminated by 'string'
enclosed by 'char'
escaped by 'char'
一,在“load data infile”中:
先看看enclosed-by的作用:
1,在字段值中存在"enclosed by"字符,并且其前一个字符为"escaped by"字符,则导入mysql后,"escaped by"字符会被去除。
2,对于文本中被"enclosed by"包裹的字段值,如果值内出现连续两个的"enclosed by"字符,则导入后,会变成一个。
再看看escaped-by作用:
1,字段值内出现"escaped by"字符,该字符将被去除,同时保留其后一个字符;
2,但是对以下特殊的两个“挨着”字符会进行"反转义"处理
"\\0" -- 反转义成\0(0x00)
"\\b", "\\n", "\\r", "\\t" -- 反转义成\b, \n, \r, \t
"\\Z" -- 反转义成ascii码26
"\\N" -- 反转义成NULL
二,在“select into outfile”中:
还是先看看enclosed-by的作用:
1,enclosed-by字句的optionally是有作用的
有optionally,则只对字符串类型的字段使用encloed-by字符“包裹”;
无optionally,则对全部字段使用enclosed-by字符“包裹”。
最后看看escaped-by的作用:
1,对以下4中情况的字符进行转义
字段值中有"escaped by"字符
字段值中有"enclosed by"字符
字段值中有"fields terminated by"和"lines terminated by"字符串的首个字符
ascii码0 -> 转义之后变成两个字节
第一个字节 - '\\'
第二个字节 - '0'(字符0,而不是ascii 0)
相关推荐
- `--input-enclosed-by`:类似于 `--enclosed-by`,但用于输入数据。 - `--input-escaped-by`:处理输入数据中的转义字符。 - `--input-fields-terminated-by`:输入字段之间的分隔符。 - `--input-lines-...
`-E` 或 `--fields-escaped-by` 定义特殊字符的转义方式。 5. **行分隔符**: `-L` 或 `--lines-terminated-by` 指定行结束符,可以是换行符、回车符或自定义字符串。 6. **表锁定**: `-l` 或 `--lock-tables`...
* `--fields-terminated-by=...`、`--fields-enclosed-by=...`、`--fields-optionally-enclosed-by=...`、`--fields-escaped-by=...`:指定要导入的字段的分隔符、封闭符、optionally 封闭符和转义符。 * `--force`...
- `--fields-terminated-by`、`--fields-enclosed-by`、`--fields-optionally-enclosed-by`、`--fields-escaped-by`、`--lines-terminated-by`:这些选项主要用于控制输出格式,以便与`LOAD DATA INFILE`命令配合...
" MySQL备份工具mysqldump的使用和参数详解" mysqldump是MySQL提供的一个备份工具,可以将 MySQL数据库中的数据dump到一个SQL文件中,以便在需要时恢复数据库。mysqldump的使用非常广泛,以下是mysqldump的使用和...
- `--fields-terminated-by`, `--fields-enclosed-by`, `--fields-optionally-enclosed-by`, `--fields-escaped-by`, `--lines-terminated-by`:这些选项与`LOAD DATA INFILE`语句的对应部分相同,用于设置数据字段...
ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS; ``` 这里,`path_to_your_file/customers.csv`是CSV文件的路径,`customers`是目标表名,其他部分定义了字段分隔符、字段包围字符和行结束符。 3. ...
- `--fields-terminated-by`, `--fields-enclosed-by`, `--fields-escaped-by`: 分别定义字段分隔符、包围符和转义字符,用于处理CSV格式的数据导出。 - `--quick`: 快速导出,不缓存结果集,适用于大数据量的导出...
- `ESCAPED BY '\\'`: 转义字符,默认为反斜杠 `\`。 - `LINES TERMINATED BY '\n'`: 指定记录之间的分隔符,默认为换行符 `\n`。 例如: ```sql SELECT * FROM test INTO OUTFILE '/usr/local/mysql/data/...
MySQL作为全球应用最为广泛的开源关系型数据库管理系统之一,其数据导入导出操作是数据库管理员和开发人员日常工作中非常重要的部分。本篇文件详细介绍了MySQL数据导入导出的方法与工具,其中主要内容涉及了...
9. `--fields-terminated-by`, `--fields-enclosed-by`, `--fields-optionally-enclosed-by`, `--fields-escaped-by`: 这些选项与`-T`选项结合使用,定义导出数据的字段分隔符、包围符和转义符,类似于`LOAD DATA IN...
- `ESCAPED BY '\\'`:定义转义字符。 - `LINES TERMINATED BY '\n'`:设置行终止符。 例如,若希望使用逗号作为字段分隔符,并用双引号包裹每个字段,可以这样修改SQL语句: ```sql SELECT * FROM driver INTO ...
通过本文的学习,我们了解了 MySQL 中数据导入导出的基本概念和方法,包括 `SELECT INTO OUTFILE` 和 `LOAD DATA INFILE` 的使用。掌握了这些技术后,我们不仅可以更好地管理和保护数据库中的数据,还能提高数据迁移...
OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'; ``` - 这里假设日志文件的位置为`/local/access_log`,并指定了字段之间的分隔符为逗号,字段可能被双引号包围,并且使用反斜杠作为转义字符。 #### 总结 本文...
[FIELDS TERMINATED BY 'string' ENCLOSED BY 'char' ESCAPED BY 'char'] [LINES TERMINATED BY 'string' STARTING BY 'string']; ``` - **示例**: 假设有如下命令: ```sql USE Meet_A_Geek; LOAD DATA ...
- `--fields-terminated-by`, `--fields-enclosed-by`, `--fields-optionally-enclosed-by`, `--fields-escaped-by`:这些选项与`-T`一起使用,控制数据字段的分隔符和转义字符。 - `-F, --flush-logs`:在开始...
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' ``` - **文件位置**:生成的文件默认存储在MySQL的数据目录下,对应于每个数据库的子目录。可以指定相对路径(如`./a.txt...
本文将深入探讨 MySQL 中导入数据的过程及其关键命令 `LOAD DATA INFILE` 的使用方法,帮助读者更好地理解和掌握如何高效地将外部文件中的数据加载到 MySQL 数据表中。 #### 命令格式与基本语法 `LOAD DATA INFILE...
处理特殊字符时,`FIELDS ENCLOSED BY`可以用来指定数据值是否被引号包围,而`FIELDS ESCAPED BY`可以改变默认的转义字符。例如,如果想让数据值被双引号包围,且使用反斜杠作为转义字符,可以这样做: ```bash ...