日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库表复制备份_mysql数据库的备份以及表格数据之间的复制

發(fā)布時間:2023/12/2 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库表复制备份_mysql数据库的备份以及表格数据之间的复制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

#####-------------mysql數(shù)據(jù)備份以及表間數(shù)據(jù)的復(fù)制-------------------#####

##----------------我的mysql學(xué)習(xí)(二)--------------------------###

##mysql數(shù)據(jù)的導(dǎo)入和導(dǎo)出--這里承接上一部分

#導(dǎo)出全部數(shù)據(jù)庫該操作在mysql命令行外進行:

導(dǎo)出數(shù)據(jù)格式如下:

mysqldump -hlocalhost -uroot -p databasename tablename > filename.sql

#由于數(shù)據(jù)庫在本機上所有可以省略-hlocalhost

#預(yù)輸入sql命令:

mysqldump -uroot -p --default-character-set=gbk mydb > E:\mydb.sql

#彈出輸入密碼提示,輸入密碼即可導(dǎo)出數(shù)據(jù)庫。.sql文件中不包含創(chuàng)建數(shù)據(jù)庫的語句

#有的僅僅是對表的操作。

C:\Users\trsli>mysqldump -uroot -p --default-character-set=gbk mydb > E:\myd

b.sql

Enter password: ****

#導(dǎo)出成功數(shù)據(jù)庫,我們將數(shù)據(jù)庫重新導(dǎo)入MySQL中,實現(xiàn)方法如下所示:

首先需要重新建立一個數(shù)據(jù)庫,或者用已經(jīng)存在的數(shù)據(jù)庫,這里新建一數(shù)據(jù)庫:

#create database mydb1 default character set gbk;

然后進行如下操作導(dǎo)入數(shù)據(jù)庫:

C:\Users\trsli>mysql -uroot -p mydb1 < E:\mydb.sql

Enter password: ****

或者在mydb1下直接用如下命令:

source E:\mydb.sql

#兩種方式效果一樣,現(xiàn)在檢查mydb1中是否存在該表已經(jīng)表中是否有數(shù)據(jù)。

mysql> use mydb1;

Database changed

mysql> show tables;

+-----------------+

| Tables_in_mydb1 |

+-----------------+

| mytable???????? |

+-----------------+

1 row in set (0.00 sec)

mysql> select * from mytables;

+----+--------+-------+

| id | name?? | count |

+----+--------+-------+

|? 1 | 張三?????? |? 1000 |

|? 2 | 李四?????? |?? 500 |

|? 3 | 王老虎????? |?? 100 |

|? 4 | 趙大????? |? 1000 |

|? 5 | 王二小????? |?? 500 |

|? 6 | 三亞子?????? |?? 100 |

+----+--------+-------+

6 rows in set (0.00 sec)

#該數(shù)據(jù)與數(shù)據(jù)庫mydb數(shù)據(jù)庫中顯示一致。

#在數(shù)據(jù)庫眾多的表中,如果我們只需要導(dǎo)出某一張表格,那么我們可以進行如下操作:

mysqldump -uroot -p mydb1 mytable > E:\mydb1.sql

C:\Users\trsli>mysqldump -uroot -p mydb1 mytable > E:\mydb1.sql

Enter password: ****

#在導(dǎo)出數(shù)據(jù)過程中有一些參數(shù)如:-d --add-drop-table,這里看一下有什么效果:

#這里只添加-d:

C:\Users\trsli>mysqldump -uroot -p -d mydb1 mytable > E:\mydb2.sql

Enter password: ****

#在導(dǎo)出的文件中會少了插入數(shù)據(jù)的sql語句,只有創(chuàng)建表的sql語句存在。

################------>.sql文件中德語句

LOCK TABLES `mytable` WRITE;

/*!40000 ALTER TABLE `mytable` DISABLE KEYS */;

INSERT INTO `mytable` VALUES (1,'張三',1000),(2,'李四',500),(3,'王老虎',100)

,(4,'趙大',1000),(5,'王二小',500),(6,'三亞子',100);

/*!40000 ALTER TABLE `mytable` ENABLE KEYS */;

UNLOCK TABLES;

################----->該區(qū)域sql語句將不會顯示

#下面添加--add-drop -table語句:

C:\Users\trsli>mysqldump -uroot -p --add-drop-table mydb1 mytable > E:\mydb3

.sql

Enter password: ****

#該結(jié)果與未添加差不多,也許個人觀察不夠仔細(xì)。

#最后同時添加:-d --add-drop-table查看效果

C:\Users\liyuanjie>mysqldump -uroot -p -d --add-drop-table mydb mytable > E:\myd

b3.sql

Enter password: ****

#該效果與只添加-d一致

####-----------------以上方式可用于數(shù)據(jù)庫備份----------------####

####-----------------以下是批量添加表數(shù)據(jù)的操作--------------####

#這些在網(wǎng)上都有現(xiàn)成的范例,但是我覺得只有自己親手做過才能算是真的明白所以有了以下的操作

#這里要做的就是關(guān)于表中數(shù)據(jù)的復(fù)制,上面我們介紹過通過.txt文本添加數(shù)據(jù),這里介紹表格間復(fù)制數(shù)據(jù):

#現(xiàn)在創(chuàng)建一個新的表:mytab

mysql> create table mytab(

-> id int primary key auto_increment,

-> name varchar(20) not null,

-> age int not null,

-> salary int not null

-> )type=InnoDB;

Query OK, 0 rows affected, 1 warning (0.07 sec)

#給該表添加4個字段

#這里用前面介紹的文件導(dǎo)入數(shù)據(jù)方式向空表mytab中添加數(shù)據(jù)

#load data local infile 'E:\mydb.txt' into table mytab(name,salary,age);

mysql> load data local infile 'E:\mydb.txt' into table mytab(name,salary,age);

Query OK, 3 rows affected (0.06 sec)

Records: 3? Deleted: 0? Skipped: 0? Warnings: 0

mysql> select * from mytab;

+----+--------+-----+--------+

| id | name?? | age | salary |

+----+--------+-----+--------+

|? 1 | ?阿瓊????? |? 23 |?? 1000 |

|? 2 | 秋水蝦???? |? 24 |??? 500 |

|? 3 | 害人精????? |? 22 |??? 100 |

+----+--------+-----+--------+

3 rows in set (0.01 sec)

#如何將mytab中的數(shù)據(jù)復(fù)制到mytable中,就是我們下面需要做的。mytable中數(shù)據(jù)如最上邊所示:

#insert into mytable (name,count) select name,salary from mytab ;

mysql> select * from mytable;

+----+--------+-------+

| id | name?? | count |

+----+--------+-------+

|? 1 | 張三?????? |? 1000 |

|? 2 | 李四?????? |?? 500 |

|? 3 | 王老虎????? |?? 100 |

|? 4 | 趙大????? |? 1000 |

|? 5 | 王二小????? |?? 500 |

|? 6 | 三亞子?????? |?? 100 |

|? 7 | ?阿瓊????? |? 1000 |

|? 8 | 秋水蝦???? |?? 500 |

|? 9 | 害人精????? |?? 100 |

+----+--------+-------+

9 rows in set (0.00 sec)

#可以看到數(shù)據(jù)以及增加了三行,即將全表導(dǎo)入

#進行不重復(fù)插入數(shù)據(jù)操作:

這里先刪除最后一條數(shù)據(jù):

#delete from mytable where id=9;

mysql> delete from mytable where id=9;

Query OK, 1 row affected (0.10 sec)

#按照預(yù)期應(yīng)該只會插入一條語句,看一下是不是如此呢,下面我們先寫一個sql的草稿:

#insert into mytable(name,count) select name,salary from mytab where not exists (select * from mytable where name=mytab.name);

#上面的語句就是將重名的剔除,添加非重名數(shù)據(jù)

mysql> insert into mytable(name,count) select name,salary from mytab where not e

xists (select * from mytable where name=mytab.name);

Query OK, 1 row affected (0.06 sec)?#影響一行數(shù)據(jù)

Records: 1? Duplicates: 0? Warnings: 0

#小注:在這里我用了較長時間才寫好該sql語句,沒辦法,略顯不專業(yè)哈。

#####----------------關(guān)于向表格中添加數(shù)據(jù)的操作暫時結(jié)束-----#### #以后還會將一些關(guān)于mysql配置文件my.conf相關(guān)的東西,由于對于數(shù)據(jù)庫整體把我不是太好,切勿見怪。

總結(jié)

以上是生活随笔為你收集整理的mysql数据库表复制备份_mysql数据库的备份以及表格数据之间的复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。