-- tb_student테이블에 레코드 추가하기
insert into tb_student(hakno,uname,address,phone)
values('g1001','홍길동','서울','111-5558')
insert into tb_student(hakno,uname,address,phone)
values('g1002','홍길동','안양','787-8877')
insert into tb_student(hakno,uname,address,phone)
values('g1003','개나리','서울',554-9632)
insert into tb_student(hakno,uname,address,phone)
values('g1004','홍길동','부평','555-8844')
insert into tb_student(hakno,uname,address,phone)
values('g1005','진달래','서울','544-6996')
insert into tb_student(hakno,uname,address,phone)
values('g1006','개나리','안양','777-1000')
-- tb_gwamok테이블 행 추가하기
insert into tb_gwamok(gcode,gname,ghakjum)
values('p001','OOP',3)
insert into tb_gwamok(gcode,gname,ghakjum)
values('p002','Oracle',3)
insert into tb_gwamok(gcode,gname,ghakjum)
values('p003','MVC1',2)
insert into tb_gwamok(gcode,gname,ghakjum)
values('d001','웹표준',2)
insert into tb_gwamok(gcode,gname,ghakjum)
values('d002','포토샵',5)
insert into tb_gwamok(gcode,gname,ghakjum)
values('p004','MVC2',3)
문)각 주소별로 학생이 몇명인지 갯수를 구하시오
select address,count(*)
from tb_student
group by address
order by count(*) desc
문) 각 주소에 3명이하만 살고 있는 학생이 누구인지?
select address,uname
from tb_student
where address in (
select address
from tb_student
group by address
having count(*)<3
)
---------------------
-- tb_sugang 행 추가하기
insert into tb_sugang(sno,hakno,gcode)
values(sugang_seq.nextval,'g1001','p001')
insert into tb_sugang(sno,hakno,gcode)
values(sugang_seq.nextval,'g1002','p002')
insert into tb_sugang(sno,hakno,gcode)
values(sugang_seq.nextval,'g1002','p001')
insert into tb_sugang(sno,hakno,gcode)
values(sugang_seq.nextval,'g1001','p003')
-----------------------
[JOIN]
- 테이블과 다른 테이블을 조합하는 것
- 테이블명 join 테이블명 on 조건
select * from tb_student join tb_sugang
on tb_sugang.hakno=tb_student.hakno
select * from tb_gwamok join tb_sugang
on tb_sugang.gcode=tb_gwamok.gcode
-- 별칭 사용
select * from tb_student AA join tb_sugang BB
on AA.hakno=BB.hakno
select CC.*
from (
select * from tb_student AA join tb_sugang BB
on AA.hakno=BB.hakno
) CC
where CC.address='안양'
select CC.*
from (
select AA.hakno,AA.uname,AA.address,BB.gcode from tb_student AA join tb_sugang BB
on AA.hakno=BB.hakno
) CC
where CC.address='안양'
-- (1)
select DD.uname,CC.*
from (
select AA.gname,BB.* from tb_gwamok AA join tb_sugang BB
on AA.gcode=BB.gcode
where BB.hakno='g1002'
) CC join tb_student DD
on CC.hakno=DD.hakno
-- (2)
select * from tb_gwamok AA join tb_sugang BB
on AA.gcode=BB.gcode join tb_student CC
on BB.hakno=CC.hakno
where BB.hakno='g1002'
----------
문) 각 학생별로 수강신청한 총학점, 이름, 학번을 검색
(1)
select CC.hakno,sum(CC.ghakjum) as gsum
from (
select BB.hakno,AA.ghakjum from tb_gwamok AA join tb_sugang BB
on AA.gcode=BB.gcode
) CC
group by CC.hakno
(2)
select DD.*,ST.uname
from
(
select CC.hakno,sum(CC.ghakjum) as gsum
from (
select BB.hakno,AA.ghakjum from tb_gwamok AA join tb_sugang BB
on AA.gcode=BB.gcode
) CC
group by CC.hakno
) DD join tb_student ST
on DD.hakno=ST.hakno
(3)학번 'g1002'
select DD.*,ST.uname
from
(
select CC.hakno,sum(CC.ghakjum) as gsum
from (
select BB.hakno,AA.ghakjum from tb_gwamok AA join tb_sugang BB
on AA.gcode=BB.gcode
) CC
group by CC.hakno
) DD join tb_student ST
on DD.hakno=ST.hakno
where DD.hakno='g1002'
'..열심히 공부하세.. > 오라클' 카테고리의 다른 글
[My-SQL 서버 설치 및 환경 구축] (0) | 2012.05.11 |
---|---|
[06] 오라클 제약조건 (0) | 2012.05.10 |
[05] 오라클 함수 (0) | 2012.05.10 |
[04] where조건절 (0) | 2012.05.10 |
[03] 오라클 자료형 (0) | 2012.05.08 |