大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 数据库 -> MySQL -> 用批处理对MySQL进行数据操作

用批处理对MySQL进行数据操作

时间: 2021-08-13 作者:daque

批处置是一种非交互式运转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吩咐插入数据。     底下咱们要把上头的文献导出到数据库中,导出之前要确认数据库仍旧在运转,即是mysqld过程(大概压服务,windows nt底下称为”效劳“,unix底下为”过程“)仍旧在运转。 而后运转底下的吩咐:   bin/mysql ?cp < /home/mark/new_data.sql 接着按提醒输出暗号,即使上头的文献中的语句没有缺点,那么那些数据就被导出到了数据库中。   吩咐行中运用load data infile 从文献中导出数据到数据库: 此刻您大概会问本人,"毕竟干什么我要输出一切的那些sql语句到文献中,而后经过步调运转它们呢?” 如许看上去犹如须要洪量的处事。很好,你如许想很大概就对了。然而假设你有从一切那些吩咐中爆发的log记载呢?此刻如许就很棒,嗯,大普遍数据库城市机动爆发数据库中的事变记载的log。而大局部log都包括有效过的原始的sql吩咐。所以,即使您不许从您此刻的数据库中程导弹出数据到新的mysql数据库中运用,那么您不妨运用log和mysql的批处置个性,来赶快且简单地导出您地数据。固然,如许就省去了打字的烦恼。     load data infile   这是咱们要引见的结果一个导出数据到mysql数据库中的本领。这个吩咐与mysqlimport特殊一致,但这个本领不妨在mysql吩咐行中运用。也即是说您不妨在一切运用api的步调中运用这个吩咐。运用这种本领,您就不妨在运用步调中导出您想要导出的数据。 运用这个吩咐之前,mysqld过程(效劳)必需仍旧在运转。   启用mysql吩咐行:   bin/mysql ?cp 按提醒输出暗号,胜利加入mysql吩咐行之后,输出底下的吩咐:   use meet_a_geek;   load data infile "/home/mark/data.sql" into table orders;   大略的讲,如许将会把文献data.sql中的实质导出到表orders中,如mysqlimport东西一律,这个吩咐也有少许不妨采用的参数。比方您须要把本人的电脑上的数据导出到长途的数据库效劳器中,您不妨运用底下的吩咐:   load data local infile "c:\mydocs\sql.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字符(\t)   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将会指示您

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.