oracle 内连接,外连接

--内连接 

   inner join  ...  on

 --左外连接

     left join ... on

 --右外连接 

    right join ... on

列:

select * from students
--需求:显示哪个班有学生
--内连接
--特点 只有关联上的数据能够查询出来,
--关联不上的数据无法查询出来
select xxx
from xx 

inner join classes c on stu.classid = c.classid

--需求:所有的学生都在哪个班
--外连接 左|右外连接
--关键字 left join 。。。 on
--特点:左表的内容全部查询出来
--右表的内容能够关联上的就关联上并展示,
--关联不上的不展示
select stu.stuid,stu.stunum,stu.stuname,c.classname
from students stu
left join classes c on stu.classid = c.classid
--右外连接
--关键字 right join ... on
select stu.stuid,stu.stunum,stu.stuname,c.classname
from classes c
right join students stu on stu.classid = c.classid
--需求:查询所有班级里的学生
select stu.stuid,stu.stunum,stu.stuname,c.classname
from classes c
left join students stu on c.classid = stu.classid

--需求1:有学生的班级里各有多少个学生
--需求2:查询人数大于2的班级
select c.classname,count(c.classname) numbers
from classes c
inner join students stu on c.classid = stu.classid
group by c.classname
having count(c.classname)>2


select rownum , a.*from (
select * from classes order by classid desc) a;

 

posted @ 2017-08-15 16:52  朴志晟  阅读(142)  评论(0编辑  收藏  举报