一)在同一個(gè)數(shù)據(jù)庫(kù)服務(wù)器上面進(jìn)行數(shù)據(jù)表間的數(shù)據(jù)導(dǎo)入導(dǎo)出:
1. 如果表tb1和tb2的結(jié)構(gòu)是完全一樣的,,則使用以下的命令就可以將表tb1中的數(shù)據(jù)導(dǎo)入到表tb2中: insert into db2.tb2 select * from db1.tb1
2. 如果表tb1和tb2只有部分字段是相同的,要實(shí)現(xiàn)將tb1中的部分字段導(dǎo)入到tb2中相對(duì)應(yīng)的相同字段中,,則使用以下命令: insert into db2.tb2(字段1,字段2,,字段3……) select 字段1‘,,字段2’,,字段3‘,…… from db1.tb1;
二)但是要實(shí)現(xiàn)將遠(yuǎn)程數(shù)據(jù)庫(kù)中數(shù)據(jù)表tb1的數(shù)據(jù)導(dǎo)入到本地?cái)?shù)據(jù)庫(kù)數(shù)據(jù)表tb2中,,并沒有太好的方法像以上例子所示的在本地直接使用SQL語(yǔ)句就能搞定,。這時(shí)就要使用到數(shù)據(jù)庫(kù)(表)的導(dǎo)出,導(dǎo)入,。即將遠(yuǎn)程的數(shù)據(jù)庫(kù)(表)導(dǎo)出到本地文件中,,然后再將該數(shù)據(jù)庫(kù)(表)導(dǎo)入(還原)到本地?cái)?shù)據(jù)庫(kù)中,。這些方法多應(yīng)用于數(shù)據(jù)庫(kù)的備份和還原中
1.遠(yuǎn)程數(shù)據(jù)庫(kù)(表)導(dǎo)出到本地?cái)?shù)據(jù)庫(kù)(表)文件 (1)導(dǎo)出數(shù)據(jù)庫(kù) mysqldump -h192.168.1.1 -uroot -p123456 --databases mydb > mydb.bak; //將192.168.1.1主機(jī)上的mydb數(shù)據(jù)庫(kù)導(dǎo)出到本地的mydb.bak文件中 (mysqldump -uroot -p123456 --databases mydb1 > mydb1.bak; //將本地MySQL服務(wù)器上的mydb1數(shù)據(jù)庫(kù)導(dǎo)出到本地的mydb1.bak文件中) (2)導(dǎo)出數(shù)據(jù)表 mysqldump -h192.168.1.1 -uroot -p123456 mydb tb1 > tb1.bak; //將192.168.1.1主機(jī)上的mydb數(shù)據(jù)庫(kù)的tb1數(shù)據(jù)表導(dǎo)出到本地的tb1.bak文件中 (mysqldump -uroot -p123456 mydb1 tb2 > tb2.bak; //將本地主機(jī)上的mydb1數(shù)據(jù)庫(kù)的tb2數(shù)據(jù)表導(dǎo)出到本地的tb2.bak文件中)
2. 導(dǎo)入數(shù)據(jù)庫(kù)(表) (1)導(dǎo)入數(shù)據(jù)庫(kù) 在本地?cái)?shù)據(jù)庫(kù)中創(chuàng)建相對(duì)應(yīng)導(dǎo)出的數(shù)據(jù)庫(kù)mydb同名的數(shù)據(jù)庫(kù): mysql> create database mydb; 然后退出數(shù)據(jù)庫(kù),再使用以下的 命令導(dǎo)入數(shù)據(jù)庫(kù)文件mydb.bak到本地?cái)?shù)據(jù)庫(kù)mydb中: mysql -uroot -p123456 mydb < /root/data/mydb.bak;
或者進(jìn)入mysql中,使用sourc指令完成數(shù)據(jù)庫(kù)導(dǎo)入,,如下: mysql> source /root/data/mydb.bak; // /root/data/mydb.bak是遠(yuǎn)程數(shù)據(jù)庫(kù)mydb導(dǎo)出文件的本地存放位置
(2)導(dǎo)入數(shù)據(jù)表 在本地?cái)?shù)據(jù)庫(kù)中創(chuàng)建相對(duì)應(yīng)導(dǎo)出的數(shù)據(jù)庫(kù)mydb同名的數(shù)據(jù)庫(kù): mysql> create database mydb; 然后在mysql中使用source指令來(lái)完成數(shù)據(jù)表的導(dǎo)入,,如下: mysql> source /root/data/tb1.bak; // /root/data/tb1.bak是遠(yuǎn)程數(shù)據(jù)表tb1導(dǎo)出文件的本地存放位置
三) 導(dǎo)出表記錄到文件 mysql -hxxx.xxx.xxx.xxx -uroot -pxxxxxx -D WHOIS -e "select domain from domainInfo where queryFlag = '2' or queryFlag = '3'" > /data/dump/overdue
注意:在數(shù)據(jù)庫(kù)(表)的導(dǎo)入、導(dǎo)出過程中,,視數(shù)據(jù)庫(kù)(表)的大小,,需要一定的時(shí)間開銷,請(qǐng)耐性等候……
四)導(dǎo)入,、導(dǎo)出數(shù)據(jù)表中的數(shù)據(jù)
1. 導(dǎo)出表數(shù)據(jù)到文件中: (select * from crawlDocs order by DocCrawlTime desc limit 2000 into outfile '/tmp/weixinData' FIELDS TERMINATED BY ',';) |
|
來(lái)自: 520jefferson > 《sql》