【JavaWeb】63:数据库备份以及多表设计

今天是刘小爱自学Java的第63天。

感谢你的观看,谢谢你。

话不多说,继续数据库的学习:

image

三天前学习了数据库的增删改查。

其中对于drop+database+数据库名这个命令记忆尤深,也听教程里的老师再三嘱咐用这个命令要切记谨慎处理,否则是要负刑事责任的。

毕竟互联网公司,最重要的也就是数据了。

今年年初的时候微盟就发生过程序员删库跑路事件,所以也一直铭记在心。

结果今天告诉我数据库是可以备份和恢复的?

也就是说删除了还是可以恢复的呀,既然如此那还怕什么删库跑路……

一、数据库备份与恢复

image

①数据库备份

将数据库student备份到test文件夹下student.sql文件里面。注意test文件夹要存在,不然会报错。

语法:mysqldump -u 用户名 -p 数据库名 > 磁盘SQL文件路径

dump,转出、转储的意思,mysqldump也就可以理解成数据库备份。

由于mysqldump命令不是sql命令,需要在DOS窗口下使用。

我晕,昨天才刚说用了可视化工具Navicat,再也不用在DOS窗口下输入命令行了。结果又啪啪打自己的脸……

②数据库恢复方案一

这个很简单,就是将备份中的>改成<就好了,只是箭头的方向不同,也好理解。

语法:mysqldump -u 用户名 -p 数据库名 < 磁盘SQL文件路径

将备份的文件导入到我自己的数据库里面,同样的道理,该命令也是需要在DOS窗口下使用。

③数据库恢复方案二

该方案是SQL语句,是在数据库中操作,命令如下:source+磁盘SQL文件路径

source,根源的意思。

二、表与表之间的关系

表与表之间一共有三种关系,如下图:

image

①1对多

一个部门有多个成员,一个成员只属于一个部门,所以是1对多。

②多对多

一个程序员会开发多个项目,一个项目会被多个程序员开发,所以是多对多。

这种情况据说在外包公司中很常见……

③1对1

一个丈夫只能有一个妻子,一个妻子只能有一个丈夫,所以是1对1。

其中又以一对多和多对多最常见。

三、一对多表设计

以上述部门和成员的关系作为例子:

image

①部门表

一共有三个部门,每个部门有自己对应的id。

那如何将这两张表联系起来?

如果是在部门表加入成员表的id,那一行需要添加多个数据,显然不行。

②成员表

一共有七个成员。

那如何将这两张表联系起来?

每个成员后面添加一个属性,也就是自己对应的部门id,这样就一目了然。

那么现在问题来了:

这只是在成员表中做了一个声明,实际上这两张表并没有关联起来。

具体什么意思呢?

简单地理解就是:假如将部门表中的某个部门是删除的,但是成员表中的数据还有这个部门。

想要解决这个问题,就要引用外键约束这个概念,将这两张表真真正正地关联起来。

如何添加外键约束?

image

①建表后添加外键约束

foreign key即为外键的意思。

references,参考的意思,这里可以理解成关联。

也就是说把成员表中的dept_id作为外键,同时与部门表中的id相关联。

这样的话,你想删除部门表中的某个部门,得保证成员表中没有该部门的成员。

②建表时添加外键约束

一般来说,会在建表的时候就添加外键,格式是一样的。

其中:

  • 部门表(1对多中的1)也叫主表。

  • 成员表(1对多中的多)也叫从表。

也就是说想要删除主表中的数据,必须保证从表中和其相关的数据不存在。

其中一对一表设计和一对多是很相似的,就是任意一张表将另外一张表的id作为外键就可以了。

操作起来很简单,并且一般应用以一对多和多对多为主,在此就不再赘述了。

四、多对多表设计

程序员表和项目表便是多对多的关系。

写sql语句创建表和添加数据,也算是对这几天学的知识点做一个复习。

image

①创建程序员表对表本身的操作,所以有table这个单词。

create table coder(表字段说明)。

其中里面表字段之间使用逗号隔开的,最后一个字段又没有逗号。

我用的分号然后一直报错,弄了半天才发现这个问题,感觉要被自己蠢疯了。②创建项目表

格式同上。

③给程序员表添加数据

insert into+表名+values+(每列对应的值);

这是将列名省略了的写法,列名省略了之后在赋值时,每列都得赋值。

④给项目表添加数据

格式同上。

那么在多对多的表中是怎么将两张表关联起来的?

[图片上传中...(image-f5a015-1592557525539-0)]

创建一个中间表,将这两个表关联起来。

  • 中间表表名一般会将这两个表名结合起来,见名知意。

  • 中间表有两个外键。

  • 外键分别对应两张表中的主键。

这样的话,这两张表也就被关联起来了。

最后

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 224,289评论 6 522
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 95,968评论 3 402
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 171,336评论 0 366
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,718评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,734评论 6 399
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,240评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,631评论 3 428
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,599评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,139评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,166评论 3 345
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,286评论 1 354
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,917评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,604评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,075评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,205评论 1 275
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,814评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,351评论 2 365