mysql 开发进阶篇系列 50 表的数据导入(load data infile,mysqlimport )
一.概述
上篇讲到的表的数据导出(select .. into outfile 或者mysqldump),这篇继续讲表的数据导入,导入也同样有二个方法,分别是load data infile... 和mysqlimport。本质是一样的,区别在于前者是mysql内部执行, 后者是mysql 外部执行。
1. load data infile 方法1
-- 格式语法如下:
load data [local] infile 'filename' info table tablename[option]
|
Option选项 |
说明 |
|
Fields terminated by 'string' |
字段分隔符, 默认为制表符 ' \t' |
|
Fields [optionally] enclosed by 'char' |
字段引用符, 如果加了optionally,则只用在char, varcahr, text 等字符型字段上。 |
|
Fields escaped by 'char' |
转义字符, 默认为 '\n' |
|
Lines starting by 'string' |
每行前都加此字符串, 默认'' |
|
Lines terminated by 'string' |
行结束符,默认为'\n' |
|
Ignore number lines |
忽略输入文件中的前n 行数据 |
|
(col_name_or_user_var, ..) |
按照列出的字段顺序和字段数量加载数据 |
|
Set col_name=expr, ... |
将列做一定的数值转换后再加载 |
下面将/tmp/ testbackup1.txt 中的数据加载到表testbackup中,案例如下:
-- 先备份
CREATE TABLE testbackup2 SELECT * FROM testbackup;
-- 删除
DELETE FROM testbackup
-- 全部导入(12行受影响)
LOAD DATA INFILE '/tmp/testbackup1.txt' INTO TABLE testbackup FIELDS TERMINATED BY ',' ENCLOSED BY '"'
-- 导入过滤前二行(10行受影响)
DELETE FROM testbackup
LOAD DATA INFILE '/tmp/testbackup1.txt' INTO TABLE testbackup FIELDS TERMINATED BY ',' ENCLOSED BY '"' IGNORE 2 LINES
-- 在上面的基本上,指定加载部分列和列顺序
DELETE FROM testbackup
LOAD DATA INFILE '/tmp/testbackup1.txt' INTO TABLE testbackup FIELDS TERMINATED BY ',' ENCLOSED BY '"' IGNORE 2 LINES(id,`name`)
-- 将id列的内容+10后再加载到表中(此时id从11开始)
DELETE FROM testbackup
LOAD DATA INFILE '/tmp/testbackup1.txt' INTO TABLE testbackup FIELDS TERMINATED BY ',' ENCLOSED BY '"' SET id=id+10

2. mysqlimport 方法2
--格式语法如下:
mysqlimport -uroot -p [-- local] dbname order_tab.txt [option]
|
Option选项 |
说明 |
|
--fields-terminated-by =name |
字段分隔符 |
|
--fields-enclosed-by=name |
字段引用符 |
|
--fields-optionally-enclosed-by=name |
字段引用符, 加了optionally,则只用在char, varcahr, text 等字符型字段上。 |
|
--fields-escaped-by=name |
转义字符 |
|
--lines-terminated-by =name |
记录结束符 |
|
--Ignore-lines=number |
忽略输入文件中的前n 行数据 |
-- 注意文件名(testbackup.txt)要与test库中的testbackup表名一致,导入脚本如下:
[root@hsr ~]# mysqlimport -uroot -p test /tmp/testbackup.txt --fields-terminated-by=',' --fields-enclosed-by='"'
Enter password:
test.testbackup: Records: 12 Deleted: 0 Skipped: 0 Warnings: 0
注意: 如果导入导出是跨平台操作的(windows和linux),那么参数--lines-terminated-by的值在windows上为--lines-terminated-by='\r\n' 。在linux上为--lines-terminated-by='\n'。 上面的案例中--lines-terminated-by的值默认是'\n' 。 对于load data infile是导入数据最快的方法,在管理维护中使用很也频繁,应此要重点掌握。
mysql 开发进阶篇系列 50 表的数据导入(load data infile,mysqlimport )的更多相关文章
- mysql 开发进阶篇系列 49 表的数据导出(into outfile,mysqldump)
一.概述 在数据库的日常维护中,表的导入和导出是很频繁的操作,本篇讲解如何使用导入功能,并以案例为演示.某些情况下,需要将表里的数据导出为某些符号分割的纯数据文本,而不是sql语句,比如:(1)用来作 ...
- mysql 开发进阶篇系列 55 权限与安全(安全事项 )
一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...
- mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)
一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...
- mysql 开发进阶篇系列 46 物理备份与恢复( xtrabackup的 选项说明,增加备份用户,完全备份案例)
一. xtrabackup 选项说明 在操作xtrabackup备份与恢复之前,先看下该工具的选项,下面记录了xtrabackup二进制文件的部分命令行选项,后期把常用的选项在补上.点击查看xtrab ...
- mysql 开发进阶篇系列 42 逻辑备份与恢复(mysqldump 的完全恢复)
一.概述 在作何数据库里,备份与恢复都是非常重要的.好的备份方法和备份策略将会使得数据库中的数据更加高效和安全.对于DBA来说,进行备份或恢复操作时要考虑的因素大概有如下: (1) 确定要备份的表的存 ...
- mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)
1. innodb_lock_wait_timeout mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间 ...
- mysql 开发进阶篇系列 10 锁问题 (相同索引键值或同一行或间隙锁的冲突)
1.使用相同索引键值的冲突 由于mysql 的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但如果是使用相同的索引键,是会出现锁冲突的.设计时要注意 例如:city表city_ ...
- mysql 开发进阶篇系列 51 权限与安全(权限表user,db详细介绍 )
一.概述 mysql 的权限系统主要用来对连接到数据库的用户进行权限验证,以此来判断此用户是否属于合法用户,以及合法用户给予的相应数据库权限.下面将介绍权限系统的工作原理,以及将要熟练掌握账号的管理和 ...
- mysql 开发进阶篇系列 4 SQL 优化(各种优化方法点)
1 通过handler_read 查看索引使用情况 如果索引经常被用到 那么handler_read_key的值将很高,这个值代表了一个行被索引值读的次数, 很低的值表明增加索引得到的性能改善不高,索 ...
随机推荐
- union: php/laravel command
#########Laravel###############2018-01-09 16:46:26 # switch to maintenance mode php artisan down # s ...
- win10与虚拟机fedora14使用samba文件共享
参考路径:http://blog.sina.com.cn/s/blog_ae9507be01017tyz.html 最近需要配置samba,试了好多次,终于搞定.奉上配置及共享文件的过程,以供参考. ...
- elasticdump 方法迁移数据
elasticdump -rm -ti taskrabbit/elasticsearch-dump --ignore-errors=true --offset=1000 --input=http:/ ...
- eclipse新建servers时选中tomcat版本后next是灰色的解决
有时在编辑器里删除server后就不能重新new了,因为不能点next. 试了下面的方法,可以用. 1.退出2.到[工程目录下]/.metadata/.plugins/org.eclipse.core ...
- Python Day 9
阅读目录: 内容回顾 内存管理 ##内容回顾 #文件处理 #1.操作文件的三步骤 -- 打开文件:硬盘的空间被操作系统持有 | 文件对象被应用程序持续 -- 操作文件:读写操作 -- 释放文件:释放操 ...
- CentOS下安装Git
在终端输入命令:yum install git,此时会进行提示安装,输入y, 在这种安装方式下,速度很快(windows系统下下载客户端速度超慢),当出现安装完毕时,就可以了. 安装完毕后输入git ...
- 1030 Travel Plan Dijkstra+dfs
和1018思路如出一辙,先求最短路径,再dfs遍历 #include <iostream> #include <cstdio> #include <vector> ...
- Catalog
Java SE EE| Hibernate | Struts2Spring/SpringMVC | MyBatis C# Python PHP C/C++ | STL 汇编语言 ...
- MVC+EF 多条件查询
根据以前的做法是拼接sql语句,这会增加维护成本,因为sql语句里的内容不会报错,所以在使用ef的时候必须要抛弃拼接sql语句的习惯. 构建实例 List<vyw_user> list = ...
- DOSBOX的安装和使用(window10 64位)
1.安装DOSBOX DOXBOX和MASM的下载和安装 2.使用DOSBOX 1.打开只有一个窗口的dosbox 2.修改dosbox的分辨率 1.打开DOSBox 0.74 Options.bat ...