在昨天的学习中,理解了mysql的大部分操作语法。
今天开始学习数据库的设计思维,这是学习数据库的分水岭,决定了到底是搬砖还是技术。
好了,废话少说,进入今天的学习。
数据库设计
设计原则:尽量遵守三大范式
介绍一下三大范式: (https://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html)
第一范式:
关键点是每个字段是不可分割的独立单元。
第二范式:
在1范式基础上,要求每张表只表达一个意思,还有就是表的每个字段都和主键有完全依赖(有些复合主键要特别注意)。
第三范式:
在第二范式的基础上,表中字段都只能和主键有直接相关而不能是间接相关。
总的来说:
第一范式是不可拆分
第二是完全依赖
第三消除传递依赖
这里来补充一下左外连接的知识:
下面 的语句是从a,b,c,三表中 查询对应a.id=1的名字,在a表中,有两个外键bid,cid ,对应于b,c,表的主键。
select a.name,b.name,c.name
from (a left join b on bid = b.id) left join c on cid = c.id
where a.id = 1;
最后讲一下备份:
(FLUSH TABLES WITH READ LOCK关闭所有打开的表,同时对于所有数据库中的表都加一个读锁,直到显示地执行unlock tables,该操作常常用于数据备份的时候。)
备份之前先在mysql窗口输入FLUSH TABLES WITH READ LOCK;回车
,这样能加快备份速度,备份完以后记得输入UNLOCK TABLES;
来解锁
在doc窗口,进入MySQL Server 5.5\bin
下面就是把数据库employee备份到f盘下a文件夹中,取名为employee.sql
mysqldump -u root -p employee > f:\a\employee.sql
那么我们怎么使用已经备份好的数据库文件呢
在mysql窗口,先创建一个数据库,然后use 这个数据库,或者直接use一个数据库
然后输入source f:\a\employee.sql 没有“;”,回车就行了。