--内连接
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;