INNER JOIN : 교집합. 두 테이블에 데이터가 모두 존재하는 경우 조회.

 

LEFT(RIGHT) OUTER JOIN : 기준 테이블의 모든 데이터 + 조인 데이터 참조. 조인 데이터가 없을 경우 NULL 값 처리.

 

FULL OUTER JOIN : 두 개 테이블 모두 조회. 조인 데이터 없을 경우 NULL값 처리.

 

JOIN시 ON / WHERE 차이

- ON : 조인 전 처리

- WHERE: 조인 후 처리


IN(100,200) : 둘 중 하나라도 포함. 100 OR 200

=> 값이 100인 데이터와 200인 데이터 출력

 

> ALL(100,200) : 모든 조건 만족. 100 > AND 200 >

=> 100보다 크고, 200보다 큰 데이터 출력

 

> ANY(100,200) / > SOME(100,200) : 둘 중 하나라도 조건 만족. 100 OR 200 (명칭만 다를 뿐 ANY와 SOME은 동일 기능)

=> 100보다 크거나 200보다 큰 데이터 출력

 

EXISTS (서브쿼리) : 조건의 TRUE/FALSE 체크, 서브쿼리를 만족하는 조건이 하나라도 있으면 더이상 탐색하지 않음.

중복데이터가 많으면 JOIN보다 빠를 수 있다!

=> 서브쿼리 만족하는 조건이 하나라도 있으면 TRUE, 하나도 없으면 FALSE

 

SQL1 UNION SQL2 : 각각의 데이터를 합친다. (중복 X)

SQL1 UNION ALL SQL2 : 각각의 데이터를 합친다. (중복 O)

 

IS NULL : NULL인 경우

IS NOT NULL : NULL이 아닌 경우

 

LIKE('A%') : A로 시작하는 경우

LIKE('%A') : A로 끝나는 경우

LIKE('%A%') : A가 포함되는 경우

 

LIKE('_A') : A로 끝나는 두 글자인 경우

 

NOT LIKE('A%') : A로 시작하지 않는 경우

NOT LIKE('%A') : A로 끝나지 않는 경우

NOT LIKE('%A%') : A가 포함되지 않는 경우

 

BETWEEN 100 AND 200 : 100 이상 200 이하의 값

NOT BETWEEN 100 AND 200 : 100이상 200이하에 포함되지 않는 값

 

BETWEEN 날짜 비교

BETWEEN TO_DATE('2000-01-01', 'YYYY-MM-DD') AND TO_DATE('2000-12-31', 'YYYY-MM-DD')

 

BETWEEN 문자 비교

BETWEEN 'A' AND 'C' : 첫 문자에 A,B,C가 포함된 값 조회. (아스키 코드값으로 비교)

 

TOP 4: 상위 4개 데이터 출력

TOP 50 PERCENT : 상위 50% 출력( 6개 데이터라면 상위 3개 출력)

 

LIMIT 3 : 3개 데이터만 출력 (= LIMIT 0,3)

LIMIT 2,2 : 세 번째 데이터부터 2개 데이터 출력(0부터 시작해서 0, 1, 2로 세 번째 데이터)

 

ROWNUM : 조회된 결과에 순서대로 순번을 붙여줌.

> ORACLE

SELECT ROWNUM FROM TB

> MYSQL

SELECT @rownum:=@rownum+1 FROM TB WHERE (@rownum:=0) = 0;

 

ROWNUM은 조회된 데이터 순서로 나오기 때문에 ORDER BY 시 순번이 뒤섞일 수 있다.

ROWNUM으로 ORDER BY 사용할 땐 서브쿼리에 ORDER BY 후 ROWNUM 사용하기!

 

ROW_NUMBER()와 다름.

ROW_NUMBER()는 OVER()함수 필수!

ORDER BY 사용 시, ROW_NUMBER()는 OVER(ORDER BY ~~) 사용하면 돼서 ROWNUM보다 더 편리할 수 있다.

 

 

 

 

'웹개발 지식' 카테고리의 다른 글

AES-256 사용법 및 예제  (0) 2023.02.06
백 / 프론트(vue) 연결  (0) 2023.02.03
포스트맨  (0) 2023.01.02
No Mybatis mapper was found in '' package  (0) 2023.01.02
SQL 컬럼 복사 방법  (0) 2022.10.20

+ Recent posts