고수님들 왕초보 sql 질문 드립니다ㅠㅠ 0 1 587

by seon [Oracle 기초] [2021.04.17 18:46:24]


1. select c.deptno, c.dname, c.college, d.dname college_name
from department c, department d
where c.college = d.deptno;

위에 결과가 이해가 안되는데 college와 deptno가 같은 데이터들만 출력하라는걸로 이해하고 있는데 어떻게 이렇게 나오는거죠??(상위부서 출력)

102	멀티미디어학과	100	정보미디어학부
101	컴퓨터공학과	100	정보미디어학부
202	기계공학과	200	메카트로닉스학부
201	전자공학과	200	메카트로닉스학부
200	메카트로닉스학부	10	공과대학
100	정보미디어학부	10	공과대학

select w.ename, m.ename 관리자
from emp w, emp m
where w.mgr = m.empno; 이것도 w.mgr = m.empno와 일치하는 것만 출력하라는건데 그러면 w.ename이랑 m.ename이랑 똑같이 나와야 하는 거 아닌가요??

2.상호연관 서브쿼리랑 셀프조인이 왜 쓰는지 어떻게 써지는지 이해가 안가는데 쉽게 설명좀 해주세요 ㅠㅠ

by 춘 [2021.04.18 00:07:48]

department 테이블에 컬럼이 deptno, college 컬럼을 보면,

college 가 상위 컬럼이고, deptno 가 하위 컬럼이라고 보시면 됩니다.

(college = 100 인 정보미디어학부 하위에 deptno = 101 과 deptno = 102 가 있습니다.

college = 100 인 정보미디어학부 상위에는 최상위 college 인 college = 10 인 공과대학이 있습니다.

college = 10 하위로 college = 100 과 동등한 위치의 college = 200 인 메카트로닉스 학부가 있습니다.

같은 테이블을 사용하고는 있지만, 다른 Alias 를 사용함으로써 다른 dname 값을 표현하고 있습니다.)

주로 계층형 관계를 표현하고자 할 때 사용합니다.

아래의 URL 정보를 참조하여, 공부하시면 도움이 될것 같네요.

http://www.gurubee.net/lecture/1300

 

추가적으로, 아래의 두 개의 URL 정보를 보고 공부하시길 추천드립니다.
http://www.gurubee.net/oracle/sql
http://www.gurubee.net/oracle/advanced

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입