![](https://img.haomeiwen.com/i176380/7b13c51cdb6ed895.png)
本资料为产品岗位作为日常工作参考,语言口语化
At 2019/4/15 By David.Yang
“仓库”里面长什么样?
“神雕班”开学啦
为了更好的将数据库的结构映射到我们生活中的场景和工具,我们通过一个班级管理来说明数据库、表、数据行、列的关系。
故事背景:
南宋(1127-1279年)
北宋灭亡后宋室皇族在江南建立的政权。同时也是中国历史上经济发达、文化繁荣、科技进步的一个朝代。靖康之变时宋徽宗、宋钦宗被金国所俘,北宋灭亡。
宋徽宗第九子康王赵构在应天府南京(今商丘)继承皇位,后迁都绍兴临安,史称南宋。南宋由于军事实力较弱,与金朝东沿淮水(今淮河),西以大散关为界。西边与西夏和大理为界。
游牧民族对宋朝先进生产关系的毁灭性打击,使一直处于上升阶段的东方先进文明,从此逐渐趋向衰落。
为救江山于水火中,天下名师(侠之大义者类似于东邪西毒、南帝北丐),响应党的号召,面向天下有志之士,创立“神雕班”,招收有武侠之勇者(天资聪颖者似杨过、小龙女之类),授以课之,共创天下大业,保一国之安。
Excel是怎么讲这个故事的呢?
我们抽取以上内容,需要被管理的资源有学生,老师,教授的课程等
学生表:
![](https://img.haomeiwen.com/i176380/9732b4dd121a1d22.png)
老师表:
![](https://img.haomeiwen.com/i176380/d56ba1fc03fc8c0d.png)
课程表:
![](https://img.haomeiwen.com/i176380/256aac53888fa385.png)
班级表:
![](https://img.haomeiwen.com/i176380/7038df284c7cc63d.png)
对于Excel,他是一个Excel文件,内部包括多张二维表格组成;
每张表格内部包括行、列组成,一行我们表示一行数据或一行记录。
纵向看每一列都代表同一个意思的数据列,
顶部我们一般会标出title,表示这行数据的意思;
多张表格之间可能还会有关联,比如上面的老师表和课程表,都共同使用到老师这个关键属性。
我们总结,Excel关键字表达有:表、表间关系、表头、列、行
数据库是这么干的~
我们之前有对比过数据库和Excel表格,到此,你可以非常简单地理解:
数据库 = 表 + 表间关系
表 = 组成(表头 + 列)
数据 = 实例化(表)
数据路的“表”
概念上表就是装了很多数据的容器,
数据库的表和Excel相比,表头是一个必须的内容,
它规范了表当中的数据长什么样子,或者讲数据的是由哪些内容构成的。
其他内容可以等同于Excel来进行理解。
如:
一张用户表,必须要有姓名、性别之类的表头,
这样保证数据落入表时有规范性,指定的数据落入指定的列,不会出现姓名数据落入性别列。
同样进行取数时才知道给你的数据是每一列什么意思。
![](https://img.haomeiwen.com/i176380/de87551cc94b1a82.png)
比如上面姓名表示这一列数据全部都是用户的姓名,性别表示列数据全都是性别。
如果只给你一行数据,你通过表头就能够知道每一列数据是什么意思。
![](https://img.haomeiwen.com/i176380/78e731849093e40a.png)
表间关系
数据表之间通常会有关联关系,它体现的本质是数据之间的关系,
我们通过老师表和课程表来体现:
老师表:
![](https://img.haomeiwen.com/i176380/a2ee5e5858f8c906.png)
课程表:
![](https://img.haomeiwen.com/i176380/1e7c1bd4fbf3b9c6.png)
以上课程表我们可以看到各个老师是教什么课的,
这个老师的信息同样存储在老师表当中。
加入我们现在将老师的名字变动了,这时候对于课程表来说是灾难性的,
因为我已经不知道现在老师已经改成什么名字了,
比如将黄药师改成黄老邪,在课程表当中存储的还是黄药师,
数据就会发生错误,查找不到黄老邪教什么课。
这时候怎么处理呢?
我们将课程表进行少许的变动,如下:
![](https://img.haomeiwen.com/i176380/34516673ae8d4bab.png)
我们一般将课程表中的教师列替换成新列,
通过老师的id来与所授的课程进行匹配,
这时候不论在教室表中他教黄药师还是叫黄老邪,
它的教师id都是唯一不变的,
我通过教师号就能知道他到底教授的是什么课程。
![](https://img.haomeiwen.com/i176380/0ab19ef97b149bc0.png)
![](https://img.haomeiwen.com/i176380/8b8383ad7cb78c1e.png)
表间的大致关系就是如此,表间关系一般会通过一个关键的字段作为桥梁,
这种关系在数据库中叫做join,这是一个非常重要的概念,
join的类型有多种情况,后续将会单独将各种表间关系有哪些,
该怎么处理查询等场景。
小结
数据库构成:
数据库 = 表 + 表间关系
数据表长什么样:
表 = 组成(表头 + 列)
数据怎么构成:
数据 = 实例化(表)
实例化即按照表头创建“一行”数据
数据表间关系:
通过一个中间字段将多张表进行关联,记住join这个概念
SQL:
为了操作数据库而诞生的一门语言,
数据库是一个大容器,里面放着数据,通过SQL这个工具去操作管理数据库中的数据。
引用个例子
例如有一碗米饭(碗就是数据库,里面放的米是数据),你要吃碗里的米饭,拿什么吃?
拿筷子(sql)。
用筷子(sql)操作碗里(数据库)的米饭(数据)
网友评论