쌓고 쌓다
오라클 중심의 SQL 배움터 8장 연습문제 풀이 본문
3번 - EQUI JOIN의 3가지 방법을 이용하여
소속학과이름과 학생 이름을 학과 이름, 학생 이름순으로 정렬하여 출력
4번 - OUTER JOIN의 2가지 방법을 이용해 101번 학과에 소속된 학생들의 지도 교수 이름을 출력.
(단, 지도 교수가 배정되지 않은 학생도 함께 출력)
5번 - 부서 테이블에서 각 부서의 상위 부서 이름을 출력
6번 - 공과대학에 소속된 학부와 학과 이름을 출력
7번 - 각 학과에 소속된 학과명, 학생명, 교수명을 모두 출력
8번 - 모든 학생의 이름, 지도 교수 이름, 학과 이름을 출력
9번 - 교수별로 교수 이름과 지도 학생 수를 출력
풀이 코드
(3)
--WHERE
SELECT d.dname,s.name
FROM student s, department d
WHERE s.deptno=d.deptno
ORDER BY d.dname, s.name;
--NATURAL JOIN
SELECT d.dname, s.name
FROM student s NATURAL JOIN department d ORDER BY d.dname, s.name;
-- JOIN USING
SELECT d.dname, s.name
FROM student s JOIN department d USING (deptno) ORDER BY d.dname, s.name;
(4)
SELECT s.deptno, s.name, p.name
FROM student s, professor p
WHERE s.profno=p.profno(+)
AND s.deptno=101;
SELECT s.deptno, s.name, p.name
FROM student s LEFT OUTER JOIN professor p
ON s.profno=p.profno
WHERE s.deptno=101;
(5)
SELECT d.dname || '의 소속은 ' || org.dname
FROM department d, department org
WHERE d.college=org.deptno;
(6)
SELECT c.dname
FROM department c, department p
WHERE c.college=p.deptno AND p.dname LIKE '공과대학';
(7)
SELECT d.dnaㄴme "학과명", s.name "학생명", p.name "교수명"
FROM department d, student s, professor p
WHERE s.deptno=d.deptno AND p.profno = s.profno;
(8)
SELECT s.name, p.name, d.dname
FROM student s, professor p, department d
WHERE s.profno=p.profno(+) AND s.deptno=d.deptno;
(9)
SELECT p.name, COUNT(*)
FROM professor p, student s
WHERE p.profno=s.profno
GROUP BY p.name;
'프로그래밍 > SQL' 카테고리의 다른 글
오라클 중심의 SQL 배움터 9장 연습문제 풀이 (0) | 2022.11.16 |
---|---|
[Oracle] 서브쿼리 (0) | 2022.11.15 |
[Oracle] OUTER JOIN, SELF JOIN (0) | 2022.11.05 |
오라클 중심의 SQL 배움터 7장 연습문제 풀이 (0) | 2022.11.02 |
오라클 중심의 SQL 배움터 6장 연습문제 풀이 (0) | 2022.11.02 |
Comments