TIL
사전캠프 2일차
도원좀비
2025. 1. 21. 19:43
숫자 계산과 정렬
집계함수
| 함수종류 | 설명 |
| SUM | 컬럼의 조건에 맞는 합계를 구함 |
| AVERAGE | 컬럼의 조건에 맞는 평균을 구함 |
| COUNT | 컬럼의 조건에 맞는 갯수를 구함(중복제외는 distint) |
| MIN | 컬럼의 조건에 맞는 최솟값을 구함 |
| MAX | 컬럼의 조건에 맞는 최댓값을 구함 |
| select sum(칼럼) from 테이블; |
select avg(칼럼) from 테이블; |
select count(칼럼) from 테이블; |
| select min(칼럼) from 테이블; |
select max(칼럼) from 테이블; |
GROUP BY로 그룹화하기
테이블의 특정 컬럼 값을 기준으로 동일하 값을 가진 행들을 하나의 그룹으로 묶습니다.
| select 컬럼1, sum(컬럼) from 테이블 group by 컬럼1; |
ORDER BY로 정렬하기
| select 컬럼1, sum(컬럼) from 테이블 group by 컬럼1 order by 정렬할 컬럼(ex 컬럼1 or sum(컬럼); |
| 오름차순 | 생략 |
| 내림차순 | desc |
데이터 가공하기
| 함수 이름 | 설명 |
| REPLACE | 문자열 내 특정 부분을 다른 문자열로 대체 |
| SUBSTRING | 문자열에서 지정된 위치부터 지정된 길이만큼 잘라냄 |
| CONCAT | 여러 문자열을 하나로 연결 |
| select 컬럼 replace(컬럼, '현재 값', '바꿀 값') from 테이블 |
select 컬럼 substr(컬럼, 1, 2) from 테이블 |
select 컬럼 concat('[', substr(컬럼, 1, 2) ,']') from 테이블 |
조건 부여하기
| 함수 이름 | 설명 |
| IF | 조건에 따라 값을 반환 |
| CASE | 여러 조건을 복잡한 조건에 따라 값을 반환 |
| select 컬럼1 if(컬럼 조건, 참일 때, 거짓일 때) "별명" from 테이블 |
select 컬럼1 case when 조건1 then 값(수식) when 조건2 then 값(수식) else 값(수식) end "별명" from 테이블 |
여러 번의 연산을 한 번의 SQL 문으로 수행하기(Subquery)
연산이 한 번에 끝나면 참 좋은데 아닐 때가 많죠. 문자 변경한 다음에 숫자 연산 하고 그 결과로 또 연산을 해야할 때 효육적으로 사용 가능하다.
| select 컬럼1, 조건문 or 함수 from ( /* subquery */ select 컬럼1, 조건문 or 함수 from 테이블 ) a |
두개의 테이블 조회하기
| Join 종류 | 설명 |
| INNER JOIN | 두 테이블에서 공통된 값을 가진 행만 반환 |
| LEFT JOIN | 왼쪽 테이블의 모든 행과, 일치하는 오른쪽 테이블의 행 반환. 일치하지 않는 경우 NULL 포함 |
| RIGHT JOIN | 오른쪽 테이블의 모든 행과, 일치하는 왼쪽 테이블의 행 반환. 일치하지 않는 경우 NULL 포함 |
| FULL OUTER JOIN | 두 테이블의 모든 데이터를 반환. 일치하지 않는 데이터는 NULL로 표시. |
| select * from 테이블1 inner join 테이블2 on 테이블1_id = 테이블2_id |
select * from 테이블1 left join 테이블2 on 테이블1_id = 테이블2_id |
select * from 테이블1 full outer join 테이블2 on 테이블1_id = 테이블2_id |