본문 바로가기

SQL/SQL 기초

(3)
SQL - UNION, ORDER BY 팁 [UNION ALL] 테이블을 위 아래로 연결할 때 쓴다. (행이 중복되어도 연결) [UNION DISTINCT] 테이블을 위 아래로 연결할 때 중복된 행이 있다면 제거해서 연결 (UNION만 써도 되는 DBMS도 있다.) UNION이 가능한 경우 컬럼의 개수, 데이터 타입이 같을 때, * 컬럼명이 달라도 됨 (AS 이용) UNION이 불가한 경우 컬럼의 개수가 다를 때, 데이터 타입이 다른 경우 ORDER BY 팁 만약 CASW WHEN 문법 등으로 새로운 컬럼의 새로운 값을 만든다면 (ex. 소형, 중형, 대형) 소형 - 중형 - 대형 순으로 값을 보고 싶을 때가 있다. 그러나 이를 그냥 ORDER BY를 하게되면 초성 순으로 대형 - 소형 - 중형으로 정렬된다. 이를 방지하기 위해서 앞에 숫자를 붙..
SQL - JOIN 할 때 ON과 WHERE의 차이 [공통점] 둘 다 JOIN을 위한 조건절로 쓰인다. [차이점] ON - JOIN이 실행되기 전 WHERE - JOIN이 실행된 후 * 모든 JOIN은 LEFT JOIN으로 통일함 예시1. ON JOIN에 우선 이름으로 테이블을 연결한 뒤 AND t2.몸무게 = 50 이라는 조건을 준 상황이다. ON은 JOIN이 되기 전에 실행되므로 간단하게 보면 1번과 3번의 LEFT JOIN이 된 것처럼 보이는 것이다. 나머지 B, C의 몸무게는 NULL값을 가진다. 예시2. WHERE WHERE은 JOIN이 실행된 후 적용된다. 우선 가운데 회색 테이블은 이름을 기준으로 t1과 t2를 JOIN한 것이다. 여기서 WHERE 조건으로 t2의 몸무게가 50인 데이터만 필터링 하면 맨 오른쪽의 하나의 행만 있는 테이블이 보..
SQL - 실무에 많이 쓰이는 JOIN은? 1. LEFT JOIN LEFT JOIN이 실무적으로 가장 많이 쓰인다. 주로 보고 싶은 테이블을 왼쪽에 두고 추가적인 정보를 더하기 위한 JOIN이기 때문이다. 위 그림의 예시에는 고객 테이블이 있고 주문 테이블이 있다. 한 고객이 여러 주문을 할 수도 있으나, 주문을 하지 않은 고객도 있을 수 있다. 모든 고객을 다 보면서 주문에 대한 정보를 추가해주는 작업은 LEFT JOIN을 해야하는 것이다. 같은 맥락에서 RIGHT JOIN도 많이 쓰여야할 것 같으나 어차피 기능은 같고 굳이 오른쪽에 메인 테이블을 둘 필요는 없으니 RIGHT JOIN은 거의 쓰이지 않는다. 2. INNER JOIN INNER JOIN도 간혹 쓰인다. 두 테이블에서 모두 해당하는 경우를 원할 때도 있기 때문이다. 위 예시에서 인..