검색 여닫기
검색
메뉴 여닫기
555
262
4
6.2천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Join Expression 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Join Expression
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
상위 문서: [[SQL]] ==개요== <gallery caption="Sample gallery" widths="300px" heights="390px"> The student relation.png|Figure 1. The student relation The takes relation.png|Figure 2. The takes relation </gallery> '''Join 연산'''은 두 개의 릴레이션(relation)을 입력으로 받고 그 결과로 또 다른 릴레이션을 만들어내는 연산이다. '''Join은 데카르트 곱(Cartesian product)의 일종으로, 두 릴레이션에 있는 튜플들을 모든 가능한 쌍으로 조합한 다음 특정 조건을 만족하는 튜플 쌍만 선택해서 결과로 내보낸다. 또한 릴레이션에 포함될 속성(attribute)들도 지정된다. Join 연산은 보통 SQL 쿼리(query)에서 from 절의 subquery 표현식으로 사용된다. Join 연산의 종류는 다음 세가지가 있다: * [[Join Expression#The Natural Join|Natural Join]]: 두 테이블에서 이름이 같은 속성들끼리 자동으로 비교해서 join 한다. * Inner Join: 조건을 만족하는 쌍만 결과에 포함된다. (null이 있는 건 제외) * Outer Join: 조건에 맞지 않아도 한쪽 테이블의 데이터를 모두 유지한다. → Left / Right / Full Outer Join으로 나뉜다. 해당 문서에서 사용되는 모든 예제들은 figure 1, 2로 제공되는 두 릴레이션인 student와 takes에 대한 것이다. ==The Natural Join== 다음의 “모든 학생들 중에서 어떤 과목이라도 수강한 학생들의 이름과 수강한 과목의 ID를 구하라”라는 SQL 쿼리<ref>해당 쿼리는 일부 과목을 수강한 학생들만을 출력하며, 어떠한 과목도 출력되지 않는다.</ref>를 보자: <syntaxhighlight lang="sql"> select name, course_id from student, takes where student.ID = takes.ID; </syntaxhighlight> 위 쿼리는 where 절의 조건은 student와 takes 테이블에서 student.ID가 takes.ID와 같아야 한다는 것이다. 이와 같은 조건은 매우 흔하게 사용된다. 즉, from 절에 있는 일치 조건은 이름이 같은 모든 속성들을 등호(=)로 비교하는 것이 대부분이다. 이러한 일반적인 경우를 위해서 SQL은 '''natural join'''이라는 연산을 지원한다. Natural join 연산은 두 릴레이션에 대해 동작하고, 양쪽 릴레이션 스키마에 공톡으로 존재하는 속성의 값이 동일한 튜플 쌍만을 고려하여 하나의 릴레이션을 생성한다. 예를 들어, [[파일:The natural join of the student relation with the takes relation.png|대체글=Figure 1. The natural join of the student relation with the takes relation|가운데|섬네일|500x500픽셀|Figure 1. The natural join of the ''student'' relation with the ''takes'' relation]] <syntaxhighlight lang="sql"> student natural join takes </syntaxhighlight> 이 연산은 두 튜플의 공통 속성(ID)의 값이 같을 경우에만 그 튜플 쌍을 고려한다. 이때, 두 릴레이션의 스키마에 공통으로 존재하는 속성들은 한 번만 나타나며 반복되지 않는다. 이를 바탕으로 figure 1의 student와 takes 간의 natural join 연산 결과를 이해할 수 있다. <syntaxhighlight lang="sql"> </syntaxhighlight> <syntaxhighlight lang="sql"> </syntaxhighlight> ==각주== [[분류:데이터베이스 시스템]]
Join Expression
문서로 돌아갑니다.