학습 기록/DataBase

23.05.09 / DataBase / ORDER BY, JOIN

SooHw 2023. 5. 9. 11:11

ORDER BY

ORDER BY + 정렬(오름/내림차순)

 

*오름차순, 내림차순

오름차순(ASC), 내림차순 (DESC)

여러 칼럼 기준으로 정렬 가능
SELECT 안된 컬럼도 정렬 가능

*출력엔 EMPLOYEE_ID 없이 SALARY만 나오지만 EMPLOYEE_ID 기준으로 정렬 된 상태

* GROUP BY로 그룹화 된경우 GROUP BY 컬럼으로만 정렬 가능

* 실행순서 GROUP BY -> SELECT -> ORDER BY

* ORDER BY가 더 느리게 실행되기 때문에 먼저 GROUP BY로 묶어버린 다음엔 다른 칼럼으로 정렬 불가

 

별칭이나 숫자로도 정렬 가능

 

 

JOIN

필요한 데이터가 두 개 이상의 테이블에 나눠져 있을때 데이터를 합쳐서 가져올 때 사용

 

=FROM=

SELECT 컬럼

FROM 테이블A 별칭, 테이블B 별칭

*별칭 사용 후 실행되는 절은 모두 별칭.컬럼 사용

직원 ID 100인 직원 부서 이름 출력

 

별칭 정해두면 다음부턴 별칭.컬럼 사용해야됨

* 오류 : DEPARTMENT_ID는 두 테이블에 중복으로 존재 

-> 별칭으로 어느 테이블 컬럼인지 명시 해줘야함

 

*중복 컬럼이 아닐 시 명시 안해도 됨

* EMPLOYEE_ID는 EMPLOYEES 단독 컬럼

 

예제.

직원 테이블 직원아이디와 부서아이디, 부서테이블의 부서이름 출력

 

CROSS JOIN

Cartesian Product(카티션 곱)이라고도 부름

Join 조건절 적지 않고, 테이블 모든 데이터 가지고 오는 방법

테이블1 행 개수 * 테이블2 행 개수 = CROSS JOIN 행 개수

예제

직원테이블 108행 * 부서테이블 27행 -> 2916행

 

INNER JOIN

EQUAL JOIN 등가조인 이라고도 부름

출력 행을 각 테이블의 특정 열에 일치한 데이터를 기준으로 출력

테이블간의 교집합, JOIN중에서 가장 일반적인 방법

*NULL 포함 x



1. WHERE 사용

예제

2. ANSI 사용

 

OUTER JOIN

INNER JOIN은 NULL 출력 x

NULL도 포함해서 출력해야 할 때 OUTER JOIN 사용


-- OUTER JOIN : NULL 값도 출력 하고 싶을 때 사용
-- LEFT OUTER JOIN  : 왼쪽 테이블 기준 (왼쪽 NULL값 포함)
-- RIGHT OUTER JOIN : 오른쪽 테이블 기준 (오른쪽 NULL값 포함)
-- FULL OUTER JOIN  : 양쪽 테이블 기준 (양쪽 NULL값 포함)

 

ANSI 문법

ORACLE 문법 (+)

LEFT OUTER JOIN -> 반대쪽인 오른쪽에 (+) 사용

* ORACLE문법 FULL OUTER JOIN

-> UNION연산자 사용(합집합) -> 중복되는 교집합부분 알아서 제거

-> UNION ALL -> 중복까지 출력하고 싶을 때

 

'학습 기록 > DataBase' 카테고리의 다른 글

23.05.15 / DataBase / DML  (0) 2023.05.15
23.05.10 / DataBase / DML  (0) 2023.05.10
23.05.08 / DataBase / GROUP BY, HAVING  (0) 2023.05.08
23.05.04 / DataBase / 함수  (0) 2023.05.07
23.05.03 / DataBase / WHERE  (0) 2023.05.06