【精华版】mysql的自然连接(natural join)与笛卡尔积

创建department表:

create table department(  
dept_name varchar(20),  
budget int,  
descript varchar(20),  
primary key(dept_name)  
);  

创建course表:

create table course(  
course_id varchar(20),  
dept_name varchar(20),  
credits int,  
foreign key(dept_name) references department(dept_name));  


查看department表:

【精华版】mysql的自然连接(natural join)与笛卡尔积_第1张图片


查看course表:

【精华版】mysql的自然连接(natural join)与笛卡尔积_第2张图片


natural join与笛卡尔积的区别:

一:natural join时,外键名称(foreign key)与所指向的表的主键名称(primary key)必须相同。

二:natural join时会合并相同的列

三:进行笛卡尔积时不会合并相同的列,而且外键名称(foreign key)与所指向的表的主键名称(primary key)不一定相同。


department表与course表进行自然连接(natural join):

【精华版】mysql的自然连接(natural join)与笛卡尔积_第3张图片


department与course表进行笛卡尔积:

【精华版】mysql的自然连接(natural join)与笛卡尔积_第4张图片


你可能感兴趣的:(mysql详解)