ORDER BY
ORDER BY + 정렬(오름/내림차순)
*오름차순, 내림차순
오름차순(ASC), 내림차순 (DESC)
*출력엔 EMPLOYEE_ID 없이 SALARY만 나오지만 EMPLOYEE_ID 기준으로 정렬 된 상태
* GROUP BY로 그룹화 된경우 GROUP BY 컬럼으로만 정렬 가능
* 실행순서 GROUP BY -> SELECT -> ORDER BY
* ORDER BY가 더 느리게 실행되기 때문에 먼저 GROUP BY로 묶어버린 다음엔 다른 칼럼으로 정렬 불가
별칭이나 숫자로도 정렬 가능
JOIN
필요한 데이터가 두 개 이상의 테이블에 나눠져 있을때 데이터를 합쳐서 가져올 때 사용
=FROM=
SELECT 컬럼
FROM 테이블A 별칭, 테이블B 별칭
*별칭 사용 후 실행되는 절은 모두 별칭.컬럼 사용
별칭 정해두면 다음부턴 별칭.컬럼 사용해야됨
* 오류 : 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 |