#####-------------mysql数据备份以及表间数据的复制-------------------#####

##----------------我的mysql学习(二)--------------------------###

##mysql数据的导入和导出--这里承接上一部分

#导出全部数据库该操作在mysql命令行外进行:

导出数据格式如下:

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

#由于数据库在本机上所有可以省略-hlocalhost

#预输入sql命令:

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

#弹出输入密码提示,输入密码即可导出数据库。.sql文件中不包含创建数据库的语句

#有的仅仅是对表的操作。

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

b.sql

Enter password: ****

#导出成功数据库,我们将数据库重新导入MySQL中,实现方法如下所示:

首先需要重新建立一个数据库,或者用已经存在的数据库,这里新建一数据库:

#create database mydb1 default character set gbk;

然后进行如下操作导入数据库:

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

Enter password: ****

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

source E:\mydb.sql

#两种方式效果一样,现在检查mydb1中是否存在该表已经表中是否有数据。

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)

#该数据与数据库mydb数据库中显示一致。

#在数据库众多的表中,如果我们只需要导出某一张表格,那么我们可以进行如下操作:

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

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

Enter password: ****

#在导出数据过程中有一些参数如:-d --add-drop-table,这里看一下有什么效果:

#这里只添加-d:

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

Enter password: ****

#在导出的文件中会少了插入数据的sql语句,只有创建表的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;

################----->该区域sql语句将不会显示

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

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

.sql

Enter password: ****

#该结果与未添加差不多,也许个人观察不够仔细。

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

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

b3.sql

Enter password: ****

#该效果与只添加-d一致

####-----------------以上方式可用于数据库备份----------------####

####-----------------以下是批量添加表数据的操作--------------####

#这些在网上都有现成的范例,但是我觉得只有自己亲手做过才能算是真的明白所以有了以下的操作

#这里要做的就是关于表中数据的复制,上面我们介绍过通过.txt文本添加数据,这里介绍表格间复制数据:

#现在创建一个新的表: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个字段

#这里用前面介绍的文件导入数据方式向空表mytab中添加数据

#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中的数据复制到mytable中,就是我们下面需要做的。mytable中数据如最上边所示:

#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)

#可以看到数据以及增加了三行,即将全表导入

#进行不重复插入数据操作:

这里先删除最后一条数据:

#delete from mytable where id=9;

mysql> delete from mytable where id=9;

Query OK, 1 row affected (0.10 sec)

#按照预期应该只会插入一条语句,看一下是不是如此呢,下面我们先写一个sql的草稿:

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

#上面的语句就是将重名的剔除,添加非重名数据

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) #影响一行数据

Records: 1  Duplicates: 0  Warnings: 0

#小注:在这里我用了较长时间才写好该sql语句,没办法,略显不专业哈。

#####----------------关于向表格中添加数据的操作暂时结束-----#### #以后还会将一些关于mysql配置文件my.conf相关的东西,由于对于数据库整体把我不是太好,切勿见怪。

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

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

    #####-------------mysql数据备份以及表间数据的复制-------------------##### ##----------------我的mysql学习(二)--------- ...

  2. mysql数据库表类型设置_mysql数据库表的类型介绍

    目录 前言 之前我们讲了下载安装数据库,还有如何卸载(虽然直接重装系统就好) 那么现在让我们来讲讲 """ 1.数据库与表的剩余操作 编码配置.引擎介绍 2.数据库字段的 ...

  3. web mysql 界面表命名规范_MySql数据库表字段命名及设计规范

    1.设计原则 1) 标准化和规范化web 数据的标准化有助于消除数据库中的数据冗余.标准化有好几种形式,但 Third Normal Form(3NF)一般被认为在性能.扩展性和数据完整性方面达到了最 ...

  4. mysql多表操作语句_MYSQL数据库语句之多表操作(三)

    多表操作 join查询(join按照功能分可以分为3类): cross join(交叉连接):获取多个表中的交叉关系. inner join(内连接):获取2个表中字段匹配关系的记录. 外连接 lef ...

  5. mysql数据库表名大小写敏感_Mysql数据库名和表名的大小写敏感性问题

    导读:一直以来,Mysql数据库名和表名的大小写都是个敏感的问题,困扰着Mysql数据库管理员.在 MySQL 中,数据库和表对应于那些目录下的目录和文件.因而,操作系统的敏感性决定数据库和表命名的大 ...

  6. mysql展现表的语句_MySQL数据库之MySQL show语句

    本文主要向大家介绍了MySQL数据库之MySQL show语句 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. show tables或show tables from data ...

  7. mysql数据库表添加字段_mysql数据库怎么给表增加一个字段?

    mysql数据库给表增加一个字段的方法:可以使用"ALTER TABLE"语句来增加一个字段,语法格式"ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条 ...

  8. mysql数据库表空间最大值_mysql 数据库取最大值

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  9. mysql 修改表列名称_MYSQL数据库- 修改数据表名称、列名称

    目录 一.修改列定义(modify col_name) 二.修改列类型(modify col_name) 三.修改列名称(change col_name) 三.修改表名称(rename table a ...

最新文章

  1. 使用姿势估计进行跌倒检测
  2. [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具
  3. Mass对象类型介绍
  4. linux内核配置与编译
  5. 搭建属于自己的技术博客
  6. django12:form 组件/渲染标签/数据校验/钩子函数/
  7. leetcode(链表专题)
  8. [五]java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用...
  9. 整型变量 默认输出 java_java数据类型详解
  10. java的getshape(),Java RectangularShape.getMaxX方法代码示例
  11. MySQL的一级索引和二级索引介绍
  12. 和平精英体验服服务器怎么样维护,和平精英体验服账号怎么弄_体验服官网申请教程_3DM手游...
  13. 《必然》二、奔跑吧,所有人都是菜鸡
  14. 神秘美女接机刘谦 网友见证奇迹时刻:女子像舒淇
  15. 阿里面试官亲述:如何利用设计模式改善业务代码
  16. 使用pytorch自己从头搭建一个Lenet分类器网络及其训练、检测脚本
  17. C++ 实现去除文本中的重复行
  18. 空间实景三维激光点云数据处理服务来了!
  19. 一本通1646GT 考试
  20. wordexport.js导出word 分栏问题

热门文章

  1. JAXB –不需要注释
  2. Spring3 RESTful Web服务
  3. MacOS命令终端(CMD)的快捷键/终端快捷键
  4. label标签/标记
  5. Linux 命令之 xz -- POSIX 平台的具有高压缩率的压缩工具
  6. tf 矩阵行和列交换_TF-搞不懂的TF矩阵加法
  7. c语言课全部由字母,C语言程序设计课程期末练习试题.doc
  8. c语言十六进制转换加H,c语言十六进制和十进制间的转换.docx
  9. Java变长数组笛卡尔积_Java 8中的流作为流的笛卡尔积(仅使用流)
  10. 电路中滤波电容和退耦电容_详解电源滤波电路中的高频滤波电容电路