MySQL数据库(表)的导入导出(备份和还原) mysql 根据一张表数据更新另一张表

转载 2016年08月29日 18:06:14

mysql 根据一张表数据更新另一张表

sql示例

update a  ,b
 set
 a.name = b.name
 where  a.id = b.id


一)在同一个数据库服务器上面进行数据表间的数据导入导出:

1. 如果表tb1和tb2的结构是完全一样的,则使用以下的命令就可以将表tb1中的数据导入到表tb2中:

insert into db2.tb2 select * from  db1.tb1

2. 如果表tb1和tb2只有部分字段是相同的,要实现将tb1中的部分字段导入到tb2中相对应的相同字段中,则使用以下命令:

insert into db2.tb2(字段1,字段2,字段3……) select  字段1‘,字段2’,字段3‘,……  from db1.tb1;

二)但是要实现将远程数据库中数据表tb1的数据导入到本地数据库数据表tb2中,并没有太好的方法像以上例子所示的在本地直接使用SQL语句就能搞定。这时就要使用到数据库(表)的导出,导入。即将远程的数据库(表)导出到本地文件中,然后再将该数据库(表)导入(还原)到本地数据库中。这些方法多应用于数据库的备份和还原中

1.远程数据库(表)导出到本地数据库(表)文件

(1)导出数据库

mysqldump -h192.168.1.1 -uroot -p123456 --databases mydb > mydb.bak;      //将192.168.1.1主机上的mydb数据库导出到本地的mydb.bak文件中

(mysqldump  -uroot -p123456 --databases mydb1 > mydb1.bak;                        //将本地mysql服务器上的mydb1数据库导出到本地的mydb1.bak文件中)

(2)导出数据表

mysqldump -h192.168.1.1 -uroot -p123456 mydb tb1 > tb1.bak;                       //将192.168.1.1主机上的mydb数据库的tb1数据表导出到本地的tb1.bak文件中

(mysqldump  -uroot -p123456 mydb1 tb2 > tb2.bak;                                      //将本地主机上的mydb1数据库的tb2数据表导出到本地的tb2.bak文件中)

2. 导入数据库(表)

(1)导入数据库

在本地数据库中创建相对应导出的数据库mydb同名的数据库:

mysql> create database mydb;

然后退出数据库,再使用以下的 命令导入数据库文件mydb.bak到本地数据库mydb中:

mysql -uroot -p123456 mydb < /root/data/mydb.bak;

或者进入mysql中,使用sourc指令完成数据库导入,如下:

mysql> source  /root/data/mydb.bak;                                          // /root/data/mydb.bak是远程数据库mydb导出文件的本地存放位置

(2)导入数据表

在本地数据库中创建相对应导出的数据库mydb同名的数据库:

mysql> create database mydb;

然后在mysql中使用source指令来完成数据表的导入,如下:

mysql> source /root/data/tb1.bak;                                               // /root/data/tb1.bak是远程数据表tb1导出文件的本地存放位置

 

三) 导出表记录到文件

mysql -hxxx.xxx.xxx.xxx -uroot -pxxxxxx -D WHOIS -e "select domain from domainInfo where queryFlag = '2' or queryFlag = '3'" >  /data/dump/overdue

注意:在数据库(表)的导入、导出过程中,视数据库(表)的大小,需要一定的时间开销,请耐性等候……


四)导入、导出数据表中的数据


1. 导出表数据到文件中:
mysql -uroot -p123456 --default-character-set=utf8
use guanjia;
select * from driver into outfile '/tmp/a.txt';

(select * from crawlDocs order by DocCrawlTime desc limit 2000 into outfile '/tmp/weixinData' FIELDS TERMINATED BY ',';)
一般最好是导出到/tmp目录下,因为这样mysql用户也可以写入。




2. 表数据导入到数据表中:
mysql -uroot -p123456 --default-character-set=utf8
use guanjia;
load data infile '/tmp/a.txt' into table test CHARACTER SET utf8;

(load data infile '/tmp/weiData' into table crawlDocs CHARACTER SET utf8 FIELDS TERMINATED BY ',';)

如果导入时出现类似 ERROR 29 (HY000): File '/tmp/a.txt' not found (Errcode: 13)的错误,则很可能是因为mysql用户没有权限访问该文件,
则使用 chown mysql:mysql /tmp/a.txt 将该文件的所属设为mysql用户,再次执行上面的命令则一般可以完成导入。

mysql单表备份和整库备份

整库备份mysqldump -h 127.0.0.1 -u root -p erp >erp.sql单表备份mysqldump -h 127.0.0.1 -u root -p erp cms_info...
  • baozhengw
  • baozhengw
  • 2015年07月11日 13:37
  • 5280

linux备份mysql的单个表

规则: mysqldump   -u root  -p   数据库名  表名 > 你要保存的sql文件(加位置) 命令:例如 mysqldump   -u root  -p  xdel  kl_...
  • huangbaiping
  • huangbaiping
  • 2016年12月02日 18:03
  • 2307

MySQL数据库(表)的导入导出(备份和还原)

一)在同一个数据库服务器上面进行数据表间的数据导入导出: 1. 如果表tb1和tb2的结构是完全一样的,则使用以下的命令就可以将表tb1中的数据导入到表tb2中: insert into db2.t...
  • Deutschester
  • Deutschester
  • 2011年10月12日 16:16
  • 27577

MySQL 单个数据库备份还原

数据库备份还原 #单个数据库备份及压缩 mysqldump -uroot -pmysql --opt --databases --routines --events --flush-logs --s...
  • kk185800961
  • kk185800961
  • 2017年07月10日 10:06
  • 1496

用sql语句快速备份表数据

用sql语句快速备份表数据
  • lqh4188
  • lqh4188
  • 2015年07月20日 18:11
  • 18046

mysql导出导入一张表

 导出 mysqldump -u user -p db tab1 tab2 > db.sql  导入 mysql>drop tab1; mysql>drop tab2; mysql -u user -...
  • zzz_781111
  • zzz_781111
  • 2009年05月15日 18:27
  • 11316

MYSQL使用mysqldump导出某个表的部分数据

MySQLdump是MySQL自带的导出数据工具,通常我们用它来导出MySQL中,但是有时候我们需要导出MySQL数据库中某个表的部分数据,这时该怎么办呢? mysqldump命令中带有一个 -...
  • xin_yu_xin
  • xin_yu_xin
  • 2012年05月17日 02:18
  • 116469

mysql导入导出一张表和导出数据库

导出  mysqldump -u user -p db tab1 tab2 > db.sql  导入  mysql>drop tab1;  mysql>drop tab2;  mysql -u us...
  • liu136313
  • liu136313
  • 2015年01月07日 22:02
  • 2227

mysql中把一个表的数据批量导入另一个表中

mysql中把一个表的数据批量导入另一个表中   不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有...
  • evan_endian
  • evan_endian
  • 2013年03月08日 22:54
  • 53673

MySql恢复误删的表或数据(不完全恢复)

一:实验目的 利用mysqldump全备及二进制日志恢复误删的表或数据(不完全恢复) 二:实验步骤 2.1:准备测试数据 use test; mysql> show tables; +--------...
  • YABIGNSHI
  • YABIGNSHI
  • 2014年10月09日 14:08
  • 2770
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL数据库(表)的导入导出(备份和还原) mysql 根据一张表数据更新另一张表
举报原因:
原因补充:

(最多只允许输入30个字)