SQL 총정리 썸네일 SQL 총정리 썸네일
DB에서 SQL을 통해 값을 취득할 때 테이블을 연결하여 취득해야 합니다. 때로는 사용하는 것이 대조구문으로 테이블과 테이블을 연결하는 역할을 하고 있습니다. 데이터를 활용하는데 있어서 큰 활용 포인트가 됩니다. 자주 사용하는 순서 DB에서 SQL을 통해 값을 취득할 때 테이블을 연결하여 취득해야 합니다. 때로는 사용하는 것이 대조구문으로 테이블과 테이블을 연결하는 역할을 하고 있습니다. 데이터를 활용하는데 있어서 큰 활용 포인트가 됩니다. 잘 쓰는 순서
내부 + 내부 +
INNER JOIN(또는 JOIN) 특징: 두 테이블에서 일치하는 레코드만 반환합니다. 양쪽 테이블의 집합이 필요할 때, 예를 들어 고객 정보와 주문 정보를 결합할 때 등 사용됩니다. INNER JOIN(또는 JOIN) 특징: 두 테이블에서 일치하는 레코드만 반환합니다. 양쪽 테이블의 집합이 필요할 때, 예를 들어 고객 정보와 주문 정보를 결합할 때 등 사용됩니다.
LEFT 조인 LEFT 조인
LEFT JOIN(또는 LEFT OUTER JOIN)의 특징: 첫번째 테이블의 모든 레코드와 두번째 테이블의 일치하는 레코드를 반환합니다. 한 테이블의 레코드를 기반으로 다른 테이블의 정보를 가져올 때 일치하지 않더라도 첫 번째 테이블의 레코드는 유지되어야 할 때 사용됩니다. LEFT JOIN(또는 LEFT OUTER JOIN)의 특징: 첫번째 테이블의 모든 레코드와 두번째 테이블의 일치하는 레코드를 반환합니다. 한 테이블의 레코드를 기반으로 다른 테이블의 정보를 가져올 때 일치하지 않더라도 첫 번째 테이블의 레코드는 유지되어야 할 때 사용됩니다.
라이트 버드맨 RIGHT 버드맨
RIGHT JOIN(또는 RIGHT OUTER JOIN)의 특징: 두 번째 테이블의 모든 레코드와 첫 번째 테이블의 일치하는 레코드를 반환합니다. LEFT JOIN과 비슷하지만 두 번째 테이블을 기준으로 첫 번째 테이블의 정보를 가져올 때 사용합니다. RIGHT JOIN(또는 RIGHT OUTER JOIN)의 특징: 두 번째 테이블의 모든 레코드와 첫 번째 테이블의 일치하는 레코드를 반환합니다. LEFT JOIN과 비슷하지만 두 번째 테이블을 기준으로 첫 번째 테이블의 정보를 가져올 때 사용합니다.
풀 버드맨 풀 버드맨
FULL JOIN(또는 FULL OUTER JOIN) 특징: 두 테이블의 모든 레코드를 반환하며 일치하지 않을 경우 NULL 값을 가집니다. 두 테이블의 전체 레코드를 조합해야 할 때 사용합니다. MySQL에서는 이런 타입의 Join을 지원하지 않습니다. FULL JOIN(또는 FULL OUTER JOIN) 특징: 두 테이블의 모든 레코드를 반환하며 일치하지 않을 경우 NULL 값을 가집니다. 두 테이블의 전체 레코드를 조합해야 할 때 사용합니다. MySQL에서는 이런 타입의 Join을 지원하지 않습니다.
셀프조인 셀프조인
SELF JOIN 특징: 테이블을 자기 자신과 조인합니다. 주로 계층적 또는 순차적인 데이터를 처리하는 데 사용됩니다. 사용할 때 주의사항 SELF JOIN 특징: 테이블을 자기 자신과 조인합니다. 주로 계층적 또는 순차적인 데이터를 처리하는 데 사용됩니다. 사용할 때 주의사항
모든 JOIN을 사용할 경우 INNER 또는 OUTER 문자를 생략할 수 있습니다. 사용할 때는 이를 주의해서 활용해야 합니다. (INNER) JOIN : 두 테이블에서 일치하는 값을 가진 레코드를 반환합니다. LEFT (OUTER) JOIN : A 테이블 전체의 레코드와 A 테이블에 연결된 B 테이블의 레코드를 반환합니다. RIGHT(OUTER) JOIN: B 테이블 전체의 레코드와 B 테이블에 연결된 A 테이블의 레코드를 반환합니다. FULL (OUTER) JOIN : 양쪽에 일치 항목이 있을 때 모든 레코드를 반환합니다. 카테시안 컵(CROSS JOIN) 모든 JOIN을 사용할 경우, INNER 또는 OUTER 문자를 생략할 수 있습니다. 사용할 때는 이를 주의해서 활용해야 합니다. (INNER) JOIN : 두 테이블에서 일치하는 값을 가진 레코드를 반환합니다. LEFT (OUTER) JOIN : A 테이블 전체의 레코드와 A 테이블에 연결된 B 테이블의 레코드를 반환합니다. RIGHT(OUTER) JOIN: B 테이블 전체의 레코드와 B 테이블에 연결된 A 테이블의 레코드를 반환합니다. FULL (OUTER) JOIN : 양쪽에 일치 항목이 있을 때 모든 레코드를 반환합니다. 카테시안컵(CROSS JOIN)
크로스 조인 크로스 조인
CROSS JOIN의 특징: 첫번째 테이블의 모든 레코드에 두번째 테이블의 모든 레코드를 결합합니다. 모든 가능한 조합을 작성해야 하는 경우에 사용됩니다. 보통은 잘 사용되지 않으니 참고해주세요. 전체 JOIN 설명 CROSS JOIN의 특징: 첫번째 테이블의 모든 레코드에 두번째 테이블의 모든 레코드를 결합합니다(카르테지안 곱). 모든 가능한 조합을 작성할 필요가 있는 경우에 사용됩니다. 보통은 잘 사용되지 않으니 참고해주세요. 전체 JOIN설명
a.id = b.id 의 SELECT * 테이블 A에서 JOIN 테이블 B를 선택합니다 a.id = b.id 의 SELECT * 테이블 A에서 JOIN 테이블 B를 선택합니다
Join은 A 테이블과 B 테이블을 연결하는 과정을 이야기합니다. 조금 더 활용을 해보면 C 테이블을 연결하는 방법도 존재합니다. Join은 A 테이블과 B 테이블을 연결하는 과정을 이야기합니다. 조금 더 활용을 해보면 C 테이블을 연결하는 방법도 존재합니다.
b.id = a.id JointableCCON c.lv = b.lv 표에서 JointableB를 선택합니다. b.lv = join b.id = a.id JointableCCON c.lv = b.lv 표에서 JointableB를 선택합니다. b.lv = join
지금 A테이블-B테이블-C테이블 연결했습니다. SELECT 조회를 하면 모든 테이블의 열을 얻을 수 있습니다. 이것은 바람직한 결과를 가져오는 방법이 아닙니다. 지금 A테이블-B테이블-C테이블 연결했습니다. SELECT 조회를 하면 모든 테이블의 열을 얻을 수 있습니다. 이것은 바람직한 결과를 가져오는 방법이 아닙니다.
b.id , b.lv , c.key를 선택합니다. a.id = a.id JOIN tableCCON c.lv = b.lv b.id , b.lv , c.key를 선택합니다. a.id = a.id JOIN tableCCON c.lv = b.lv
이렇게 원하는 값만 출력할 수 있습니다. LEFT JOIN 이렇게 원하는 값만 출력할 수 있습니다. LEFT JOIN
b.id = a.id c.lv = b.lv 왼쪽 결합테이블의 테이블A에서 구별 a.id , b.lv , c.key를 선택합니다 b.id = a.id c.lv = b.lv 왼쪽 결합테이블의 테이블A에서 구별 a.id , b.lv , c.key를 선택합니다
레코드에서 JOIN의 방법에 의해서 복수의 값으로 읽어들이는 일이 있습니다. 이것은 LEFT JOIN을 했을 때 발생하는데 중복된 값을 제거하기 위해서는 DISTINCT를 활용하여 해결할 수 있습니다. 이 연산은 리소스를 많이 사용할 수 있기 때문에 주의가 필요합니다. LEFT JOIN을 하게 되면 다른 테이블의 값이 NULL이어도 값을 일괄 출력하게 됩니다. 따라서 중복된 값이 출력될 수 있습니다. 레코드에서 JOIN의 방법에 의해서 복수의 값으로 읽어들이는 일이 있습니다. 이것은 LEFT JOIN을 했을 때 발생하는데 중복된 값을 제거하기 위해서는 DISTINCT를 활용하여 해결할 수 있습니다. 이 연산은 리소스를 많이 사용할 수 있기 때문에 주의가 필요합니다. LEFT JOIN을 하게 되면 다른 테이블의 값이 NULL이어도 값을 일괄 출력하게 됩니다. 따라서 중복된 값이 출력될 수 있습니다.
LEFT JOIN을 사용할 때 조인되지 않은 레코드에 대한 NULL 처리에 신경을 써야 합니다. 예를 들면 IS NULL 혹은 IS NOT NULL을 사용해서 이러한 값들을 필터링할 수 있습니다. 성능을 높이려면 LEFT JOIN을 사용할 때 조인되지 않은 레코드에 대한 NULL 처리에 신경을 써야 합니다. 예를 들면 IS NULL 혹은 IS NOT NULL을 사용해서 이러한 값들을 필터링할 수 있습니다. 성능을 높이려면
JOIN 순서: 일반적으로 조인할 때 순서를 잘 정해야 합니다. 이것은 성능 문제와 관련이 있습니다. JOIN 연결 : JOIN을 할 때 컬럼을 제대로 연결하지 않으면 값이 표시되지 않을 수 있습니다. SELECT* 최소화: JOIN 조건을 명확히 하는 것이 중요합니다. 네트워크 대역폭을 절약하고 데이터베이스 부하를 줄입니다. JOIN 순서: 일반적으로 조인할 때 순서를 잘 정해야 합니다. 이것은 성능 문제와 관련이 있습니다. JOIN 연결 : JOIN을 할 때 컬럼을 제대로 연결하지 않으면 값이 표시되지 않을 수 있습니다. SELECT* 최소화: JOIN 조건을 명확히 하는 것이 중요합니다. 네트워크 대역폭을 절약하고 데이터베이스 부하를 줄입니다.