一.概述

  上篇讲到的表的数据导出(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 )的更多相关文章

  1. mysql 开发进阶篇系列 49 表的数据导出(into outfile,mysqldump)

    一.概述 在数据库的日常维护中,表的导入和导出是很频繁的操作,本篇讲解如何使用导入功能,并以案例为演示.某些情况下,需要将表里的数据导出为某些符号分割的纯数据文本,而不是sql语句,比如:(1)用来作 ...

  2. mysql 开发进阶篇系列 55 权限与安全(安全事项 )

    一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...

  3. mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)

    一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...

  4. mysql 开发进阶篇系列 46 物理备份与恢复( xtrabackup的 选项说明,增加备份用户,完全备份案例)

    一. xtrabackup 选项说明 在操作xtrabackup备份与恢复之前,先看下该工具的选项,下面记录了xtrabackup二进制文件的部分命令行选项,后期把常用的选项在补上.点击查看xtrab ...

  5. mysql 开发进阶篇系列 42 逻辑备份与恢复(mysqldump 的完全恢复)

    一.概述 在作何数据库里,备份与恢复都是非常重要的.好的备份方法和备份策略将会使得数据库中的数据更加高效和安全.对于DBA来说,进行备份或恢复操作时要考虑的因素大概有如下: (1) 确定要备份的表的存 ...

  6. mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)

    1. innodb_lock_wait_timeout mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间 ...

  7. mysql 开发进阶篇系列 10 锁问题 (相同索引键值或同一行或间隙锁的冲突)

    1.使用相同索引键值的冲突 由于mysql 的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但如果是使用相同的索引键,是会出现锁冲突的.设计时要注意 例如:city表city_ ...

  8. mysql 开发进阶篇系列 51 权限与安全(权限表user,db详细介绍 )

    一.概述 mysql 的权限系统主要用来对连接到数据库的用户进行权限验证,以此来判断此用户是否属于合法用户,以及合法用户给予的相应数据库权限.下面将介绍权限系统的工作原理,以及将要熟练掌握账号的管理和 ...

  9. mysql 开发进阶篇系列 4 SQL 优化(各种优化方法点)

    1 通过handler_read 查看索引使用情况 如果索引经常被用到 那么handler_read_key的值将很高,这个值代表了一个行被索引值读的次数, 很低的值表明增加索引得到的性能改善不高,索 ...

随机推荐

  1. MySQL忘记密码怎么修改密码

    MySQL的 root 帐号密码默认为空,经常都有修改密码后忘记密码的事.如果忘记了root 帐号密码,那该怎么修改密码呢?这里有一个可行的方法,就是在MySQL安全模式下(跳过权限检查)修改密码的方 ...

  2. 【机器学习】K均值算法(I)

    K均值算法是一类非监督学习类,其可以通过观察样本的离散性来对样本进行分类. 例如,在对如下图所示的样本中进行聚类,则执行如下步骤 1:随机选取3个点作为聚类中心. 2:簇分配:遍历所有样本然后依据每个 ...

  3. tensorflow 源码编译

    https://blog.csdn.net/xsfl1234/article/details/67669707 https://blog.csdn.net/guxi123/article/detail ...

  4. 【Selenium】【BugList10】smtp发送邮件问题汇总:550/535/554

    [场景] 通过126邮箱向QQ邮箱发送HTML格式邮件 [代码1] from email.mime.text import MIMEText from email.header import Head ...

  5. Java多线程编程核心技术(一)

    先提一下进程,可以理解为操作系统管理的基本单元. 而线程呢,在进程中独立运行的子任务.举个栗子:QQ.exe运行时有很多子任务在同时运行,比如好友视频线程.下载视频线程.传输数据线程等等. 多线程的优 ...

  6. T-2-java面向对象

    一.类 类对象的数据结构定义,方法是对象的行为. 类是数据类型. 一个类可以创建多个对象,这多个对象结构相同,数据不同. 类中可以包含:(1)成员变量(对象的共同特征,静的):(2)方法(对象的共同行 ...

  7. 20175316盛茂淞 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周(6)

    20175316与20175329 结对编程练习_四则运算(第二周) 1.需求分析 实现一个命令行程序,要求: 自动生成指定数量的小学四则运算题目(加.减.乘.除) 支持整数 统计正确率 支持多运算符 ...

  8. centos7下安装mysql会遇到的问题集合

    1.mysqld_safe提示 command not found 解决方法 https://blog.csdn.net/lampqiu/article/details/79138961 2.Mysq ...

  9. aircrakf

    airmon-ng start wlan0 airodump-ng wlan0mon#find the wifi airodump-ng -w yakoazz -c 1 --bssid BE:5F:F ...

  10. 0723掰棒子记录--vue的数据渲染

    问题1:想要在一个panel标签中添加一个图片,panel中有一个datalist属性.如何设计标签可以插入想要的图片. template: <panel :list="dataLis ...