SQL 知识量:22 - 44 - 129
关系表是关系型数据库中的表的基本形式,例如这里有三个表:学生表(student)、课程表(lesson)和选课表(course),它们的具体内容如下:
student:
+----+--------+-----+--------+ | id | name | age | sex | +----+--------+-----+--------+ | 1 | Susan | 11 | female | | 2 | Jame | 12 | male | | 3 | Bob | 11 | male | | 4 | Robot | 10 | male | | 5 | Jen | 11 | female | | 6 | Toney | 10 | male | | 7 | Jack | 13 | male | | 8 | Alice | 10 | female | | 9 | Bonnie | 11 | male | | 10 | Ella | 12 | female | +----+--------+-----+--------+
lesson:
+----+---------+ | id | name | +----+---------+ | 1 | Maths | | 2 | English | | 3 | Natural | +----+---------+
course:
+----+------------+-----------+ | id | id_student | id_lesson | +----+------------+-----------+ | 1 | 1 | 1 | | 2 | 5 | 3 | | 3 | 2 | 1 | | 4 | 4 | 1 | | 5 | 6 | 1 | | 6 | 1 | 2 | | 7 | 3 | 2 | | 8 | 4 | 2 | | 9 | 5 | 2 | | 10 | 2 | 3 | | 11 | 4 | 3 | | 12 | 6 | 3 | +----+------------+-----------+
以上三个表有如下关系:
course中的id_student与student中的id是对应的。
course中的id_lesson与lesson中的id是对应的。
在course中,id_student和id_lesson称为外键,三个表中的id均称为主键。
因此,通过以上主键和外键之间的关联关系,这三个表成为了关系表。
将以上三个表中的信息分别存储于三个表,而不是一个表是很有必要的,因为尽量避免重复数据是关系数据库设计的原则。在以上三个表中:
学生的信息和课程信息都不重复。
如果要改变学生或课程信息,只需改动一条即可。
每个表中的数据都很容易保持一致性。
以上数据表的设计具有较好的可伸缩性。
可伸缩是指能够适应不断增加的工作量而不会出现问题或失败。
由于信息被分别存储于多个关系表中,因此,如果要同时查询多个表中的相关信息,就需要一种同时检索多个表中数据的机制,联结就是这种机制,可以在一次查询中,通过联结多个表返回一组数据,这正是联结的价值所在。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6