今天简单记录一下,关系代数中笛卡尔积与连接和sql语句的转换。
关系代数中的笛卡尔积用sql表示是:
select * from table1,table2;
这个语句就是将table1和table2进行了笛卡尔积运算,之后的自然连接和等值连接都是在此基础上进行有选择的查询。
假设a,b是表1和表2的相同属性,那么
select (去掉一个表的a,b属性的其他属性!) from table1,table2 where table1.a=table2.a and table1.b=table2.b;
这个语句就表示关系代数的自然连接。
那么减少点限制条件,
select* from table1,table2 where table1.a=table2.a;
这个相当于关系代数里的等值连接,他查出来的是所有,table1的ab和table2的ab都有。毕竟等值连接的定义是如此。