sql2000连接查询002--外连接和复合条件连接

来源:互联网 发布:简单的视频剪辑软件 编辑:程序博客网 时间:2024/05/18 05:03

三、外连接

外连接的表示方法为,在连接谓词的某一边加符号*。外连接就好像是为符号*所在边的表(本例是SC表)增加一个“万能”的行,这个行全部又空值组成。它可以和另一边的表(本例是Student表)中所有不满足连接条件的元组进行连接。
如果外连接符出现在连接条件的右边,成为右外连接,如果外连接符出现在连接条件的左边,称为左外连接
 
上个例子中只显示选课学生的信息,若想显示没有选课的学生信息,就要用到外连接。
select student.sno,sname,ssex,sage,sdept,cno,gradefrom student,scwhere student.sno= sc.sno(*)
便上述代码不能运行:第 3 行: '*' 附近有语法错误。作以下更改
select student.sno,sname,ssex,sage,sdept,cno,gradefrom student left join scon student.sno=sc.sno;
 
            95003和95004两行中来到自SC表的属性值全部为空值。

四、符合条件连接

Where子句中可以有多个连接条件,称为符合条件连接

例35:查询选修2号课程且成绩在90分以上的所有学生。
select student.sno,snamefrom student,scwhere student.sno=sc.sno and      sc.cno='2' and      sc.grade>90

例36:查询每个学生的学号,姓名,选修的课程名及成绩
select student.sno,sname,cname,gradefrom student,sc,coursewhere student.sno = sc.sno and sc.cno = course.cno
 
用left join 连接实现如下:
select student.sno,sname,cname,grade from sc  left join student on student.Sno=sc.Sno left join course  on course.Cno=sc.Cno
 
用别名代替操作表:
select s.sno,sname,cname,grade from sc as scc left join student as s on s.Sno=scc.Sno left join course  as c on c.Cno=scc.Cno


 
附sql查询服务器运行图:
 
 
0 0
原创粉丝点击