千家信息网

如何使用批处理实现MySQL数据导入导出

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要为大家展示了"如何使用批处理实现MySQL数据导入导出",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用批处理实现MySQL数据导入导出"
千家信息网最后更新 2026年11月01日如何使用批处理实现MySQL数据导入导出

这篇文章主要为大家展示了"如何使用批处理实现MySQL数据导入导出",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用批处理实现MySQL数据导入导出"这篇文章吧。

批处理是一种非交互式运行mysql程序的方法,如同您在mysql中使用的命令一样,你仍然将使用这些命令。

为了实现批处理,您重定向一个文件到mysql程序中,首先我们需要一个文本文件,这个文本文件包含有

与我们在mysql中输入的命令相同的文本。
比如我们要插入一些数据,使用包含下面文本的文件(文件名为New_Data.sql,当然我们也可以取名为

New_Data.txt及任何其他的合法名字,并不一定要以后缀sql结尾):
USE Meet_A_Geek;
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Block");
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Newton");
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Simmons");
注意上面的这些句子的语法都必须是正确的,并且每个句子以分号结束。
上面的USE命令选择,INSERT命令插入数据。

下面我们要把上面的文件导入到数据库中,导入之前要确认数据库已经在运行,即是d进程(或者说

服务,Windows NT下面称为"服务",unix下面为"进程")已经在运行。
然后运行下面的命令:
bin/mysql -p < /home/mark/New_Data.sql
接着按提示输入密码,如果上面的文件中的语句没有错误,那么这些数据就被导入到了数据库中。

命令行中使用LOAD DATA INFILE 从文件中导入数据到数据库:
现在您可能会问自己,"究竟为什么我要输入所有的这些SQL语句到文件中,然后通过程序运行它们呢?"
这样看起来好像需要大量的工作。很好,你这样想很可能就对了。但是假如你有从所有这些命令中产生的

log记录呢?现在这样就很棒,嗯,大多数数据库都会自动产生数据库中的事件记录的log。而大部分log

都包含有用过的原始的SQL命令。因此,如果您不能从您现在的数据库中导出数据到新的my中使

用,那么您可以使用log和mysql的批处理特性,来快速且方便地导入您地数据。当然,这样就省去了打字

的麻烦。

LOAD DATA INFILE
这是我们要介绍的最后一个导入数据到MySQL数据库中的方法。这个命令与mysqlimport非常相似,但这个

方法可以在mysql命令行中使用。也就是说您可以在所有使用API的程序中使用这个命令。使用这种方法,

您就可以在应用程序中导入您想要导入的数据。

使用这个命令之前,mysqld进程(服务)必须已经在运行。
启动mysql命令行:
bin/mysql -p
按提示输入密码,成功进入mysql命令行之后,输入下面的命令:
USE Meet_A_Geek;
LOAD DATA INFILE "/home/mark/data.sql" INTO TABLE Orders;
简单的讲,这样将会把文件data.sql中的内容导入到表Orders中,如mysqlimport工具一样,这个命令也

有一些可以选择的参数。比如您需要把自己的电脑上的数据导入到远程的数据库服务器中,您可以使用下

面的命令:
LOAD DATA LOCAL INFILE "C:MyDocsSQL.txt" INTO TABLE Orders;

上面的LOCAL参数表示文件是本地的文件,服务器是您所登陆的服务器。
这样就省去了使用ftp来上传文件到服务器,MySQL替你完成了.
您也可以设置插入语句的优先级,如果您要把它标记为低优先级(LOW_PRIORITY),那么MySQL将会等到

没有其他人读这个表的时候,才把插入数据。可以使用如下的命令:
LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" INTO TABLE Orders;

您也可以指定是否在插入数据的时候,取代或者忽略文件与数据表中重复的键值。替代重复的键值的语法

:
LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" REPLACE INTO TABLE Orders;
上面的句子看起来有点笨拙,但却把关键字放在了让您的剖析器可以理解的地方。

下面的一对选项描述了文件的记录格式,这些选项也是在mysqlimport工具中可以用的。他们在这里看起

来有点不同。首先,要用到FIELDS关键字,如果用到这个关键字,MySQL剖析器希望看到至少有下面的一

个选项:
TERMINATED BY character
ENCLOSED BY character
ESCAPED BY character
这些关键字与它们的参数跟mysqlimport中的用法是一样的. The
TERMINATED BY 描述字段的分隔符,默认情况下是tab字符( )
ENCLOSED BY描述的是字段的括起字符。比方以引号括起每一个字段。
ESCAPED BY 描述的转义字符。默认的是反些杠(backslash: ).
下面仍然使用前面的mysqlimport命令的例子,用LOAD DATA INFILE语句把同样的文件导入到数据库中:
LOAD DATA INFILE "/home/mark/Orders.txt" REPLACE INTO TABLE Orders FIELDS TERMINATED BY ,

ENCLOSED BY ";


LOAD DATA INFILE语句中有一个mysqlimport工具中没有特点:
LOAD DATA INFILE 可以按指定的列把文件导入到数据库中。
当我们要把数据的一部分内容导入的时候,这个特点就很重要。比方说,我们要从Access数据库升级到

MySQL数据库的时候,需要加入一些栏目(列/字段/field)到MySQL数据库中,以适应一些额外的需要。
这个时候,我们的Access数据库中的数据仍然是可用的,但是因为这些数据的栏目(field)与MySQL中的不

再匹配,因此而无法再使用mysqlimport工具。尽管如此,我们仍然可以使用LOAD DATA INFILE,下面的

例子显示了如何向指定的栏目(field)中导入数据:
LOAD DATA INFILE "/home/Order.txt" INTO TABLE Orders(Order_Number, Order_Date, Customer_ID);

如您所见,我们可以指定需要的栏目(fields)。这些指定的字段依然是以括号括起,由逗号分隔的,如

果您遗漏了其中任何一个,MySQL将会提醒您^_^

Importing Data from Microsoft Access (从Access中导入数据,略)

以上是"如何使用批处理实现MySQL数据导入导出"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

数据 命令 文件 数据库 面的 服务 运行 内容 字段 时候 程序 语句 中导 输入 关键 关键字 工具 文本 方法 服务器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 哈尔滨大商圈互联网科技有限公司 互联网科技工作委员会主任 苏州找大状互联网科技有限公司 互联网科技公司的优势 深圳互联网络科技有限公司 菲比寻常互联网科技 上海亿帐通互联网科技 中国互联网金融科技基金 深圳互联网科技怎么样 老年人脱离互联网科技的作文 互联网科技实习生岗位职责 世界互联网科技公司市值排名 开一家科技互联网公司需要多少钱 互联网新科技动漫ppt素材 恒生互联网科技业指数调整周期 深圳无忧互联网科技 易租星互联网科技有限公司 求路客互联网科技电话 现代互联网科技公司 互联网科技股 顺玮阁互联网科技 北京华百购互联网科技有限公司 南山科技园互联网公司有哪些 互联网校园科技培训 互联网对科技的发展 电子科技大学互联网创业大赛 上海创道互联网络科技有限公司 江苏互联网智能科技产品出厂价 深圳互联网科技园地址
0