话不多说,继续数据库的学习:
三天前学习了数据库的增删改查。
其中对于drop database 数据库名这个命令记忆尤深,也听教程里的老师再三嘱咐用这个命令要切记谨慎处理,否则是要负刑事责任的。
毕竟互联网公司,最重要的也就是数据了。
今年年初的时候微盟就发生过程序员删库跑路事件,所以也一直铭记在心。
结果今天告诉我数据库是可以备份和恢复的?
也就是说删除了还是可以恢复的呀,既然如此那还怕什么删库跑路……
一、数据库备份与恢复
①数据库备份
将数据库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,根源的意思。
二、表与表之间的关系
表与表之间一共有三种关系,如下图:
①1对多
一个部分有多个成员,一个成员只属于一个部门,所以是1对多。
②多对多
一个程序员会开发多个项目,一个项目会被多个程序员开发,所以是多对多。
这种情况据说在外包公司中很常见……
③1对1
一个丈夫只能有一个妻子,一个妻子只能有一个丈夫,所以是1对1。
其中又以一对多和多对多最常见。
三、一对多表设计
以上述部门和成员的关系作为例子: