连接查询

SQL> select * from student;

SNO SNAME SCLASS
---------- ---------- ----------
1001 Tom 1
1002 Lucy
1003 Lily 3

SQL> select * from class;

CNO CNAME
---------- ----------
1 计算机1班
2 化学1班
3 物理1班

内连接:
SQL> select s.sno,s.sname,c.cname from student s,class c where s.sclass = c.cno;

SNO SNAME CNAME
---------- ---------- ----------
1001 Tom 计算机1班
1003 Lily 物理1班

SQL> select s.sno,s.sname,c.cname from student s join class c on s.sclass = c.cno;

SNO SNAME CNAME
---------- ---------- ----------
1001 Tom 计算机1班
1003 Lily 物理1班

SQL> select s.sno,s.sname,c.cname from student s inner join class c on s.sclass = c.cno;

SNO SNAME CNAME
---------- ---------- ----------
1001 Tom 计算机1班
1003 Lily 物理1班

查出每个学生分别属于哪个班级,用到左连接
左连接:LEFT JOIN 或 LEFT OUTER JOIN。
SQL> select s.sno,s.sname,c.cname from student s , class c where s.sclass = c.cno(+);

SNO SNAME CNAME
---------- ---------- ----------
1001 Tom 计算机1班
1002 Lucy 物理1班
1003 Lily
1004 Jerry 物理1班

SQL> select s.sno,s.sname,c.cname from student s left join class c on s.sclass = c.cno;

SNO SNAME CNAME
---------- ---------- ----------
1001 Tom 计算机1班
1002 Lucy 物理1班
1003 Lily
1004 Jerry 物理1班


查出每个班有哪些学生
右连接:RIGHT JOIN 或 RIGHT OUTER JOIN。
SQL> select c.cname,s.sno,s.sname from student s right join class c on s.sclass = c.cno;

CNAME SNO SNAME
---------- ---------- ----------
计算机1班 1001 Tom
物理1班 1002 Lucy
物理1班 1004 Jerry
化学1班

SQL> select c.cname,s.sno,s.sname from student s , class c where s.sclass(+) = c.cno;

CNAME SNO SNAME
---------- ---------- ----------
计算机1班 1001 Tom
物理1班 1002 Lucy
物理1班 1004 Jerry
化学1班


全连接:FULL JOIN 或 FULL OUTER JOIN。
SQL> select c.cname,s.sno,s.sname from class c full outer join student s on s.sclass = c.cno;

CNAME SNO SNAME
---------- ---------- ----------
计算机1班 1001 Tom
物理1班 1002 Lucy
物理1班 1004 Jerry
化学1班
1003 Lily

交叉连接:
SQL> select * from student cross join class order by sno;

SNO SNAME SCLASS CNO CNAME
---------- ---------- ---------- ---------- ----------
1001 Tom 1 2 化学1班
1001 Tom 1 1 计算机1班
1001 Tom 1 3 物理1班
1002 Lucy 3 1 计算机1班
1002 Lucy 3 2 化学1班
1002 Lucy 3 3 物理1班
1003 Lily 2 化学1班
1003 Lily 1 计算机1班
1003 Lily 3 物理1班
1004 Jerry 3 2 化学1班
1004 Jerry 3 3 物理1班=
1004 Jerry 3 1 计算机1班

已选择12行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值