数据库内连接
INNER JOIN
数据库内连接限制较多,要求连接的关系表之间必有一一行对应关系,不然容易出现一对多产生长幅数据表,如下图:
要求每位学生选择一门课程,则两表匹配后会出现sx关系表情况,事实上匹配结果已经超出逻辑范围。
如若学生id对应选课表内课程id,且作为匹配条件,即可消除笛卡尔积,实现一一对应。
SQL语句是:
select s.id,s.name,x.id,x.course from student s inner join course x on s.id=x.id;
SQL语句中,为了便于区分各表格标签,使用了表别名s,x。
外连接
左连接、右连接
左连接与右连接是对应关系,意在规定主表位置,连接时以主表为连接依据,如若从表没有对应数据则以null值连接表示
语句为
SELECT s.SName,c.CourseID,c.Score FROM Student s LEFT JOIN Score c ON s.SCode=c.StudentsID;