-
SQL - INNER JOIN: 두 개이상의 Table를 결합하는 기능 -SQL 2024. 11. 13. 09:31
-- 예시 쿼리 SELECT users.id, users.name, orders.order_id, orders.date FROM users INNER JOIN orders ON users.id = orders.userid;
많은 table은 효율을 중시하며 데이터가 대용량이기에 들어있는 정보가 최대한 중복되는 값이 없도록 만들어야 합니다.
결국, 많은 회사는 대용량을 보다 효율적인 방식을 위하여
회원의 정보가 계속해서 중첩되서 자리를 차지하는 경우를 방지하는 등의
노력을 기울이고 이 값들을 INNER JOIN의 값을 이용하여 두개의 table을 연결하는 식으로 사용합니다.
/* 같은 id끼리만 select시키는 값 구사하기 */ -- old SELECT * FROM users, orders WHERE user.id = order.userid -- new SELECT * FROM users INNER JOIN orders ON user.id = orders.userid
INNER JOIN을 사용하는 것은 데이터베이스에서 여러 테이블 간의 공통된 정보를 결합할 때 매우 효율적인 방식입니다. 아래에 INNER JOIN의 주요 장점들을 설명하겠습니다.
1. 데이터 정확성 및 일관성 확보
- INNER JOIN은 두 테이블에서 공통된 값이 있는 행만 결합합니다. 즉, 양쪽 테이블에서 지정된 조건을 만족하는 행만 결과에 포함되므로, 불필요한 데이터가 배제됩니다. 예를 들어, 특정 회원에 대한 거래 내역을 조회할 때 회원 정보가 없는 거래는 결과에 나타나지 않습니다.
2. 데이터 중복 방지
- 기존 SELECT * FROM users, orders WHERE user.id = order.userid 방식은 테이블 간의 모든 조합을 생성하는 CROSS JOIN을 수행한 후 조건을 필터링하는 형태입니다. 반면, INNER JOIN은 처음부터 조건에 맞는 행만 결합하므로, 불필요한 중복 데이터 생성 없이 필요한 데이터만 추출할 수 있습니다. 대용량 테이블에서 중복 데이터를 줄여 성능을 높일 수 있습니다.
3. 쿼리 성능 향상
- INNER JOIN은 데이터베이스 엔진이 조인 조건을 기반으로 데이터를 필터링하면서 결합하기 때문에 일반적으로 더 빠릅니다. 특히 테이블에 인덱스가 적용된 경우 INNER JOIN을 사용할 때 최적화된 인덱스 검색을 통해 성능이 향상됩니다.
4. 코드 가독성 향상
- INNER JOIN 구문은 조인 조건이 명확하게 ON 절에 명시되어 있기 때문에, 데이터 간의 관계가 직관적으로 이해됩니다. 이로 인해 SQL 쿼리의 가독성이 높아지고 유지보수가 쉬워집니다. 반면, WHERE 조건을 사용하는 경우 조건이 여러 개일 때 코드가 복잡해질 수 있습니다.
'SQL' 카테고리의 다른 글
SQL - self join (2) 2024.11.14 SQL JOIN 기초: INNER JOIN과 LEFT JOIN, 그리고 JOIN의 의미 (0) 2024.11.13 SQL의 CASE 심화 (1) 2024.11.12 SQL의 CASE사용법 (1) 2024.11.11 SQL의 지금까지 배운 것 함축 내 (3) 2024.11.09