인트로
안녕하세요. 오늘은 조인과 셀프조인의 정의와 이들의 SQL구문을 알아보겠습니다.
제가 대학교 '데이터베이스' 강의를 수강할 때도, 처음 머릿속에 SQL 구문과 그 결과를 집어넣는 일은 쉽지 않았습니다.
SQL은 많이 짜보고 그 결과를 확인해보아야 실력이 느는 것 같습니다.
[ 목차 ]
1. 조인
- 테이블 구조 (학생 , 등록)
- 조인의 정의, SQL 예시
2) 셀프조인 정의 및 예시
1. 조인
1-1) 테이블 구조
- 학생 테이블 (STUDENT)
학생테이블은, 각각 Sno(학번), Sname(이름), Syear(학년), Department(학과)로 구성되어있습니다.
- 등록테이블 (ENROLL)
등록테이블은, 각각 cno(학과), Sno(학생이름), Grade(학점), Mid(중간고사점수), Final(기말고사 점수)로 구성되어있습니다.
1-2) 조인의 정의
조인이란, 2개의 테이블에 대해 연관된 튜플들을 결합하여 하나의 릴레이션을 반환하는 것입니다.
JOIN은 크게 INNER JOIN과 OUTER JOIN으로 구분됩니다.
1-3) JOIN의 SQL 예시
i) DB를 수강하는 학생의 이름, 성적을 구하여라.
select s.sname , e.grade from student s , enrol e where s.sno = e.eno and e.cno = 'DB'
ⅱ) '데이터 베이스'라는 이름의 과목을 수강하는 학생의 이름, 성적을 구하여라
select s.sname, e.grade from student s, enrol e, course c where s.sno= e.sno and c.cno = e.cno and c.cname = '데이터베이스';
2. 셀프 조인
2-1) 셀프 조인의 정의
셀프 조인이란, 같은 테이블에서 2개의 속성을 연결하여 EQUI JOIN을 하는 JOIN의 방법입니다. 즉, 자기 자신의 테이블에 조인하는 것입니다.
테이블 구조 : employee (eno, ename, dept, manager_id)
여기서 eno은 기본키, manager_id 는 외래키입니다. 외래키가 기본키를 가리키고 있다는 것은 즉, 셀프조인입니다.
2-2) 셀프조인의 예시
i ) 상사의 아이디가 100번인 직원들을 검색하라.
select * from employee where manager_id = 100;
ⅱ) 상사의 이름이 마이크인 직원들을 검색하라.(셀프조인)
select * from emplyee e , employee m where e.manager_id(외래키) == m.eno(기본키) and m.name == 'Mike' ;
'이론 > DB' 카테고리의 다른 글
[IT] 데이터 그립(DataGrip) 학생 인증하고 무료로 사용하기 (0) | 2021.04.17 |
---|---|
[DB] 식별, 비식별관계와 강한,약한 개체 (0) | 2020.03.29 |
[DB] 데이터베이스 애트리뷰트 종류(단순, 복합, 유도, NULL) (0) | 2020.03.29 |
[DB] 데이터베이스의 1:1, 1:N, N:M 관계 (1) | 2020.03.29 |
[DB][SQL] 집계함수(COUNT, SUM, AVG, MAX, MIN) (0) | 2020.03.11 |