mysql 根据另一张表的数据更新一张表
sql 示例
a,b 设置 a.name = b.name .id = b.id
1)同一数据库服务器上的数据表之间导入和导出数据:
1、如果表tb1和表tb2的结构完全相同,则使用以下命令将表tb1中的数据导入到表tb2中:
从 db1.tb1 进入 db2.tb2 *
2、如果只有表tb1和tb2中的某些字段相同,则要将tb1中的某些字段导入到tb2中对应的相同字段中,请使用以下命令:
进入 db2.tb2(字段 1, 字段 2, 字段 3...) 字段 1', 字段 2', 字段 3',... 来自 db1.tb1;
2)但是要将远程数据库的数据表tb1的数据导入到本地数据库的数据表tb2中,如上例所示,直接在本地使用SQL语句没有什么好的办法。 这时候就需要用到数据库(表)的导出和导入。 即将远程数据库(表)导出到本地文件,然后将数据库(表)导入(恢复)到本地数据库。这些方法多用于数据库备份和恢复
1、导出远程数据库(表)到本地数据库(表)文件
(1)导出数据库
-h192.168.1.1 -uroot -- mydb > mydb.bak; //将192.168.1.1主机上的mydb数据库导出到本地mydb.bak文件
(-uroot -- mydb1 > mydb1.bak; //将本地mysql服务器上的mydb1数据库导出到本地mydb1.bak文件)
(2)导出数据表
-h192.168.1.1 -uroot -mydb tb1 > tb1.bak; //将192.168.1.1主机上mydb数据库的tb1数据表导出到本地tb1.bak文件
(-uroot - mydb1 tb2 > tb2.bak; //将本地主机上mydb1数据库的tb2数据表导出到本地tb2.bak文件)
2.导入数据库(表)
(1)导入数据库
在本地数据库中创建与导出的数据库mydb同名的数据库:
mysql > mydb;
然后退出数据库,然后使用以下命令将数据库文件mydb.bak导入到本地数据库mydb中:
mysql -uroot - mydb < /root/data/mydb.bak;
或者进入mysql,使用命令完成数据库导入,如下:
mysql> /root/data/mydb.bak; // /root/data/mydb.bak 是远程数据库mydb导出文件的本地存储位置
(2)导入数据表
在本地数据库中创建与导出的数据库mydb同名的数据库:
mysql > mydb;
然后使用mysql中的指令完成数据表的导入,如下:
mysql> /root/data/tb1.bak; // /root/data/tb1.bak为远程数据表tb1导出文件的本地存储位置
3)导出表记录到文件
mysql -hxxx.xxx.xxx.xxx-uroot - -D WHOIS -e " from where = '2'or = '3'" >/data/dump/
注意:数据库(表)的导入导出过程中,根据数据库(表)的大小,会需要一定的时间。 请耐心等待...
4)导入导出数据表中的数据
1、导出表数据到文件:mysql -uroot - ----set=utf8 use ; * 从进入'/tmp/a.txt';
(* from order by desc limit 2000 into '/tmp/'BY',';)一般最好导出到/tmp目录下,因为这样mysql用户也可以写入。 2、将表数据导入到数据表中:mysql -uroot - ----set=utf8 use ; 将数据'/tmp/a.txt'加载到表test SET utf8中; (load data '/tmp/' into table SET utf8 BY ',';) 如果导入时出现类似 ERROR 29 (HY000): File '/tmp/a.txt' not find (: 13) 的错误,则为很可能是因为mysql用户没有访问该文件的权限,那么使用 chown mysql:mysql /tmp/a.txt 将文件的所有权设置为mysql用户。 再次执行上述命令一般即可完成导入。
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。