본문 바로가기

Database19

UNION (SELECT 결과들 합치기) 목차 UNION SELECT * FROM 테이블1 UNION SELECT * FROM 테이블2; JOIN은 테이블을 양 옆으로 붙이고 싶을 때 사용했습니다. 이와 달리 UNION은 테이블을 위아래로 붙이고 싶을 때 사용합니다. UNION으로 합치려는 테이블의 컬럼 개수는 같아야 합니다. UNION으로 합친 결과들은 자동으로 중복되는 행들은 제거해 줍니다. 만약 중복제거가 싫다면 UNION ALL을 사용하면 됩니다. SELECT * FROM 테이블1 UNION ALL SELECT * FROM 테이블2; 출처 codding apple [한 번에 끝내는 SQL & Database] 2024. 3. 12.
JOIN (INNER, LEFT, RIGHT, FULL) 목차 JOIN JOIN 소개 program, teacher 예시 강사 id에 대한 정보가 teacher table에 저장되어 있습니다. 아래처럼 프로그램, 가격, 강사 출신대학 4개의 컬럼 한번에 출력하려면 어떻게 해야할까요? 단순히 SELECT 문을 사용하면 아래와 같이 전체 조합이 출력됩니다. ( 5 x 3 ) SELECT * FROM program, teacher program의 강사id 컬럼과 teacher id 컬럼이 같은 행만 출력하도록 필터링 작업을 진행해주어야합니다. SELECT * FROM program, teacher WHERE program.강사id=teacher.id 위 작업을 INNER JOIN 을 통해서 동일하게 구현 가능합니다. SELECT * FROM program INNER.. 2024. 3. 12.
IF / CASE 목차 IF / CASE 조건에 따라서 결과를 다르게 출력해줘야 하는 경우가 있습니다. 이럴 때 사용하는 것이 IF / CASE 입니다. IF IF () 는 양자택일밖에 하지 못합니다. IF (조건색, 참이면뱉을값, 거짓이면뱉을값) 예시 사용금액이 20만원 이상이면 우수고객, 아닐 경우 일반고객 출력하기 SELECT 고객명, 사용금액, IF (사용금액>200000, '우수고객', '일반고객') AS 등급 FROM card CASE CASE는 여러 개의 조건식을 걸어줄 수 있습니다. CASE WHEN 조건식1 THEN 남길값1 WHEN 조건식2 THEN 남길값2 WHEN 조건식3 THEN 남길값3 ELSE 나머지값 END 예시 사용금액이 200000이상이면 최우수고객, 100000~200000 사이면 우수고.. 2024. 3. 2.
그룹지어 통계내기 (GROUP BY) 목차 GROUP BY 어떤 카테고리별로 묶어서 통계(집계 함수)를 내고 싶을 때 사용하는 것이 GROUP BY 입니다. 예를 들어 고객등급이 'VIP'인 사람들끼리의 평균, '패밀리'인 사람들끼리의 평균, '로열'인 사람들끼리의 평균을 따로따로 구해야 할 경우 유용합니다. 예시 GROUP BY를 사용하지 않을 경우 SELECT AVG(사용금액) FROM card WHERE 고객등급='vip'; SELECT AVG(사용금액) FROM card WHERE 고객등급='패밀리'; SELECT AVG(사용금액) FROM card WHERE 고객등급='로열'; GROUP BY를 사용한 경우 위에서 한 작업을 한 번에 처리가 가능합니다. (모든 고객등급에 대하여 처리가능) SELECT 고객등급, AVG(사용금액) F.. 2024. 3. 2.