SQL关系模型与关系数据库

203 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天,点击查看活动详情

✔个人主页:Mr.Darcy8的掘金主页

🎉欢迎关注👀点赞👍收藏⭐留言📝以及交流人生哲理🎈学习心得🎁

前言

回忆一下我们之前了解过的,SQL语言控制的数据库是建立在哪个数据模型上的?

——答案很显然,是“关系模型”。SQL是访问关系数据库的计算机标准语言,而关系数据库正是建立在各系模型上的。

关系数据表

关系模型本质就是若干个二维数据表,每个表的每一行称为记录(Record)代表的是我们平常说的数据;每一列称为字段(Column)储存了每一条记录含有相同类型相同意义的数据值

这就建立了一个数据表:

意义1意义2
记录1的第一个值记录1的第二个值
记录2的第一个值记录2的第二个值
……

可能这样说还是没那么好理解,其实我们代入一个具体的范例就好理解了:

学生姓名学生成绩
张三99
李四97

在这样一个学生成绩表中,我们建立了学生姓名和学生成绩这两个数据的关系。

而前面这个这个仅仅只是关系数据表,若要称为数据库,表与表之间也需要有关系

关系数据库

比如我们再建立一个表,储存的是每位同学的学号信息和姓名的对应关系:

学生姓名学生学号
张三2022120101
李四2022120102
……
显然,这第二张表的每个记录都可以对应一个第一张表的记录,可以理解成一个学生有一个学号和一个分数。

这就是关系数据库中两个表“一对一”的关系

思考:那么一对多、多对一怎么理解呢?可以试着举举例子。

这里我也可以给出一个例子。还是基于上面提到的学生学号表,我们可以再加一列班级:

学生姓名学生学号班级
张三2022120101高三1班
李四2022120102高三1班
王五2022120103高三2班
……

再来一个班级表:

班级班主任
高三1班M先生
高三2班L女士
……

我们发现张三和李四都是来自高三1班,所以学生表的多条记录对应班级表的一条记录,这种关系就是“多对一”。反之,班级表的一条记录对应学生表的多条记录,这种关系就是“一对多”。

总结

一张表中,每条记录中值的排列按照列名以一定关系排列,我们可以通过一条记录的值定位到这条记录(或者筛选出一些符合条件的记录),并可能查找到这条记录别的值

一个关系数据库中,我们可以建立表与表的关系,通过连接、子查询等操作,对庞大的数据进行管理,让他们井井有条地为我们服务

新人上路,欢迎互相帮扶~Mr_darcy8的掘金主页

可以的话给咱点个赞呗💖