조인 (JOIN @INNER JOIN)
조인 (JOIN)은 SQL문의 초급에서 중급으로 가는 가장 중요한 문장이라고 생각한다.
지금까지는 한개의 테이블에서만 여러가지 데이터를 가져왔지만
조인을 이용하면 두 개 이상의 테이블에서 데이터를 가져올수 있다.
그러기 위해서는 서로 관계가 되어있긴 해야한다.
데이터베이스의 테이블은 중복과 공간 낭비를 피하고
데이터의 무결성을 위해서 여러 개의 테이블로 분리하여 저장한다.
그리고 이 분리된 테이블은 서로 여러가지 제약조건을 가지고 관계가 맺어져있다.
이 관계를 이용해서 여러 테이블에서 동시에 데이터를 가져와 보자.
INNER JOIN (내부 조인)은 조인중에서 가장 많이 사용되고
실제로 SQL문에서 따로 명령어를 치지않고 JOIN을 입력하면 자동으로 INNER JOIN으로 인식한다.
먼저 JOIN의 형식부터 알아보자.
그리고 이 분리된 테이블은 서로 여러가지 제약조건을 가지고 관계가 맺어져있다. 이 관계를 이용해서 여러 테이블에서 동시에 데이터를 가져와 보자.
SELECT 열 목록 FROM 첫 번째 테이블 INNER JOIN 혹은 JOIN 두 번째 테이블 ON 조인될 조건 WHERE 기타 검색조건;
ON은 첫 번째 테이블과 두 번째 테이블의 공통된 속성을 말한다고 생각하면 쉽다.
USE sqlDB; SELECT * // 모든 열 FROM buyTbl JOIN userTbl ON buyTbl.userID = userTbl.userID // buyTbl의 userID와 userTbl의 userID를 비교해서 같은경우 가져온다. WHERE buyTbl.userID = 'JYP'; // 이름이 JYP인 사람을
위 결과를 추출하는 과정을 적어보자면 먼저 buyTbl의 userID인 'JYP'를 추출한다.
그리고 'JYP'와 동일한 값을 userTbl의 userID에서 검색한다. 이후에 결합시키게 된다.
만약에 WHERE절이 없을 경우 두 테이블의 모든 행을 결합시키게 된다.
'SQL > mysql' 카테고리의 다른 글
WITH ROLLUP (0) | 2017.10.03 |
---|---|
테이블 복사 (TABLE COPY) (0) | 2017.10.03 |
CAST(), CONVERT() (0) | 2017.09.29 |
MySQL 내장 함수 (0) | 2017.09.19 |
변수 (Variable) (0) | 2017.09.19 |
댓글
이 글 공유하기
다른 글
-
WITH ROLLUP
WITH ROLLUP
2017.10.03 -
테이블 복사 (TABLE COPY)
테이블 복사 (TABLE COPY)
2017.10.03 -
CAST(), CONVERT()
CAST(), CONVERT()
2017.09.29 -
MySQL 내장 함수
MySQL 내장 함수
2017.09.19