본문 바로가기
Database/SQLD

SQLD 문제 풀이 11

by KkingKkang 2023. 5. 30.

1. 다음 중 아래 테이블들을 대상으로 sql 문장을 수행한 결과로 가장 적절한 것은?

os

osid(pk) os명
100 android
200 ios
300 bada

단말기

단말기id(pk) 단말기명 osid(fk)
1000 a1000 100
2000 b2000 100
3000 c3000 200
4000 d3000 300

고객

고객번호(pk) 고객명 단말기id(fk)
11000 홍길동 1000
12000 강감찬 null
13000 이순신 null
14000 안중근 3000
15000 고길동 4000
16000 이대로 4000
select
	a.고객번호,
    a.고객명,
    b.단말기id,
    b.단말기명,
    c.osid,
    c.os명
from 고객 a left outer join 단말기 b
on (a.고객번호 in(11000, 12000) and a.단말기id = b.단말기id) left outer join os c
on (b.osid = c.osid)
order by a.고객번호;

 

고객번호 고객명 단말기id 단말기명 osid os명
11000 홍길동 1000 a1000 100 android
12000 강감찬 null null null null
13000 이순신 null null null null
14000 안중근 null null null null
15000 고길동 null null null null
16000 이대로 null null null null

 

2. 아래의 emp 테이블과 dept 테이블에서 밑줄 친 속성은 주키이며 emp c는 dept와 연결된 외래키이다. emp 테이블과 dept 테이블을 left, full, right 외부조인(outer join)하면 생성되는 결과 건수는?

emp 테이블

A B C
1 b w
3 d w
5 y y

dept테이블

C D E
w 1 10
z 4 11
v 2 22

 

1) left outer join 

A B C d.C d.D d.E
1 b w w 1 10
3 d w w 1 10
5 y y null null null

2) right outer join

A B C C D E
1 b w w 1 10
3 d w w 1 10
null null null z 4 11
null null null v 2 22

3) full outer join

A B C C D E
1 b w w 1 10
3 d w w 1 10
null null null z 4 11
null null null v 2 22
5 y y null null null

 

3. 신규 부서의 경우 일시적으로 사원이 없는 경우도 있다고 가정하고 dept 와 emp 를 조인하되
사원이 없는 부서 정보도 같이 출력하도록 할 때, 아래 sql문장의 ㄱ 안에 들어갈 내용을 기술하시오.

select e.name, d.deptno, d.dname

from dept d left outer join emp e

on d.deptno = e.deptno;

 

4. 다음 중 아래와 같은 데이터 상황에서 sql의 수행 결과로 가장 적절한 것은?

tab1

C1 C2
a 1
b 2
c 3
d 4
e 5

tab2

C1 C2
b 2
c 3
d 4
select *
from tab1 a left outer join tab2 b
on (a.c1 = b.c1 and b.c2 between 1 and 3)
C1 C2 C1 C2
a 1 null null
b 2 b 2
c 3 c 3
d 4 null null
e 5 null null

 

 

반응형

'Database > SQLD' 카테고리의 다른 글

계층형 쿼리  (0) 2023.06.01
SQLD 문제 풀이 12  (0) 2023.06.01
SQLD 문제 풀이 10  (0) 2023.05.30
SQLD 문제 풀이 9  (2) 2023.05.22
SQLD 문제 풀이 8  (0) 2023.05.22

댓글