조인(join)의 종류

테이블을 가로로 합치는 개념

 

inner join

테이블1과 테이블2의 키값이 값을 결과를 리턴

left join

테이블 1 전체와 테이블 2 중 테이블 1과 키 값이 같은 결과를 리턴

빈 곳은 널값이 들어간다.

right join

테이블 2 전체와 테이블 1 중 테이블 2와 키 값이 같은 결과를 리턴

빈 곳은 널값이 들어간다.

SELECT 컬럼명1, 컬럼명2

FROM 테이블명1 JOIN 테이블명2

ON 테이블명1.컬럼A = 테이블명2.컬럼A

 

유니온(union)

테이블을 세로로 합치는 개념

SELECT 칼럼명1 FROM A

UNION  (ALL)      

SELECT 칼럼명1 FROM B

SELECT ID, NAME FROM TABLE1 ;

 UNION

 SELECT ID, NAME FROM TABLE2 ;

 

순위 메기기

순위 함수 설명
rank 중복 순위 적용,
1->2->2->4
dense_rank 중복 순위 적용
1->2->2->3
SELECT 컬럼명, 순위함수() OVER (ORDER BY 컬럼명)

FROM 테이블명

 

이전, 다음 행 조회하기

이동 함수 설명
lag 이전 행
lead 다음 행
SELECT 컬럼명, 이동함수(컬럼명, offset) OVER (ORDER BY 컬럼명)

FROM 테이블명

 

파티션

SELECT 컬럼명, 함수() OVER (PARTITION BY 컬럼명 [ORDER BY 컬럼명])

FROM 테이블명

FRAME절

명령어  설명
current row 현재 로우
n preceding n번째 뒤 로우
n following n번째 앞 로우
unbounded preceding 제일 처음 로우
unbounded following 제일 마지막 로우
SELECT 컬럼명, 함수() OVER (ORDER BY 컬럼명 ROWS BETWEEN [FRAME절] AND [FRAME절])

FROM 테이블명

특정 컬럼 기준으로 그룹화

SELECT 그룹화_칼럼명1, 그룹화_칼럼명2, 집계함수

FROM 테이블명

GROUP BY 그룹화_칼럼명1, 그룹화_칼럼명2

 

그룹화한 칼럼을 기준으로 조건화

SELECT 그룹화_칼럼명1, 그룹화_칼럼명2, 집계함수

FROM 테이블명

GROUP BY 그룹화_칼럼명1, 그룹화_칼럼명2

HAVING 집계함수 조건

case when 함수

SELECT CASE WHEN 조건1 THEN 결과값1

                  WHEN 조건2 THEN 결과값2

                  ELSE 결과값3

                  END

FROM 테이블명

함수들 정리

함수 설명
sum
count 행 개수
min 최소값
max 최대값
avg 평균
truncate( , n ) 소수점 n자리까지 표시
round( , n ) 소수점 n 자리 지정 반올림
ceil 올림
floor 내림
abs 절대값
sign 양수는 1, 음수는 -1, 0은 0
length 문자열 길이
trim 앞뒤 공백 제거
upper 모두 대문자로
lower 모두 소문자로
left( , n) 왼쪽 n번째까지
right( , n) 오른쪽 n번째까지
replace 대체
lpad, rpad 특정 글자 반복
substring 문자열 자르기
concat 문자열 붙이기
concat_ws 문자열 사이에 값 넣기
curdate 현재 날짜 반환
curtime 현재 시각 반환
now 현재 날짜와 시각 반환
year 연도 반환
month 월 반환
day 일 반환
last_day 해당 월의 마지막 일 반환
weekday 요일 반환 월~일=0~6으로
dayname 요일 이름 반환
adddate 시간/날짜 덧셈
subdate 시간/날짜 뺄셈
datediff 두 시간/날짜 일 차이
timediff  두 시간/날짜 시간 차이
   

 

 

오름차순 데이터 조회

SELECT *

FROM 테이블명

ORDER BY 컬럼명 (ASC)

 

내림차순 데이터 조회

SELECT *

FROM 테이블명

ORDER BY 컬럼명 DESC

1. 비교연산자

비교연산자 기능
= 같다
!=, <> 다르다
< 보다 작다
<= 같거나 작다
> 크다
>= 같거나 크다
between 두 값 사이에 있다
is null null이다

 

2. 문법

숫자 데이터 필터링

SELECT *

FROM 테이블명

WHERE 컬럼명= 숫자

 

문자 데이터 필터링

SELECT *

FROM 테이블명

WHERE 비교컬럼명= ‘문자’

 

다조건 교집합 필터링

SELECT *

FROM 테이블명

WHERE 조건1 AND 조건2

 

다조건 합집합 필터링

SELECT *

FROM 테이블명

WHERE 조건1 OR 조건2

 

다조건 하나 이상 만족 데이터 필터링

SELECT *

FROM 테이블명

WHERE 비교컬럼명(NOT) IN (조건1, 조건2)

 

정규화 패턴 데이터 필터링

정규화 패턴 설명
'a%' a로 시작
'%z' z로 끝난다
'%def%' def 포함
'_b%' 2번 째 글자가 b
'a%z' a로 시작 z로 끝난다
'a_%_%' a로 시작하고 3글자 이상
SELECT *

FROM 테이블명

WHERE 컬럼명 LIKE 정규화 패턴

 

 

 

 

+ Recent posts