0x01、笛卡尔积笛卡尔积的元素是元组,关系A和B的笛卡尔积可以记为(AXB),如果A为a目,B为b目,那么A和B的笛卡尔积为(a+b)列的元组集合。(1)学生表和分数表中的信息:学生表: 分数表(大概就是这个样子):(2)学生表和分数表执行笛卡尔积后:
SELECT * FROM student JOIN score
可以看出,执行sql语句后,student表中的每一条语句分别与score表中的每一条语句连接。0x02、内连接内连接又称为普通连接或自然连接。在说自然连接之前,应该先说一下连接的概念,连接是从笛卡尔积中选取属性间满足一定条件的元组。连接运算又可以分为等值连接和自然连接。(1)等值连接当条件为“=”的连接为等值连接,是连接属性值相等的那些元组。其结果是连接的表的所有列,包括重复列。还是运用上面的学生表和分数表:执行以下语句(隐式内连接)过滤掉没有用的元组,保留想要的有意义的元组。
SELECT * FROM student, score WHERE student.studentno=score.studentno
或者(显式内连接)
SELECT * FROM student INNER JOIN score ON student.studentno=score.studentno
即:只有学生表的学号属性和分数表的学号属性相等的时候才会将表中的两个元组相连,与笛卡尔积相比,等值连接添加了限制条件。