데이터베이스 -6

김정현·2024년 5월 10일
0

데이터베이스

목록 보기
5/16

다중행 함수와 데이터 그룹화

하나의 열에 출력 결과를 담는 다중행 함수

-여러 행을 바탕으로 하나의 결과 값을 도출해 내기 위해 사용하는 함수입니다.
-SUM 함수를 사용하여 급여 합계 출력하기
-SUM 함수를 사용하여 사원 이름과 급여 합계 출력하기(오류 발생)
-자주 사용하는 다중행 함수

주로 통계관련 함수 : 집계 함수

1. 합계를 구하는 SUM 함수

1) 데이터의 합을 구하는 함수
2) 추가 수당 합계 구하기
3) SUM 함수와 DISTINCT, ALL 함께 사용하기

ALL : 모든 값 (기본 값)
DISTINCT : 유일한 값

2. 데이터 개수를 구해 주는 COUNT 함수

1) 데이터 개수를 출력하는 데 사용
2) NULL이 데이터로 포함되어 있을 경우, NULL 데이터는 반환 갯수에서 제외

참고)
전체 데이터 갯수 : COUNT(*)

3. 최댓값과 최솟값을 구하는 MAX, MIN 함수

MAX(..) : 최대값
MIN(..) : 최소값

4. 평균 값을 구하는 AVG 함수

1) 부서 번호가 30인 사원들의 평균 급여 출력하기
2) DISTINCT로 중복을 제거한 급여 열의 평균 급여 구하기

결과 값을 원하는 열로 묶어 출력하는 GROUP BY절

  • 집합 연산자를 사용하여 각 부서별 평균 급여 출력
SELECT DEPTNO, JOB, ROUND(AVG(SAL)) FROM EMP GROUP BY DEPTNO, JOB;

1. GROUP BY 절의 기본 사용법

1) 여러 데이터에서 의미 있는 하나의 결과를 특정 열 값으로 묶어서 출력할 때 데이터를 '그룹화' 한다고 표현
2) 문법
3) GROUP BY절에 명시하는 열은 여러 개 지정할 수 있습니다.

2. GROUP BY절을 사용할 떄 유의점

1) 다중행 함수를 사용하지 않은 일반 열은 GROUP BY절에 명시하지 않으면 SELECT 절에서 사용할 수 없다는 것
2) GROUP BY절에 없는 열을 SELECT절에 포함했을 경우

GROUP BY절에 조건을 줄 때 사용하는 HAVING절

1) HAVING 절은 SELECT문에 GROUP BY절이 존재할 때만 사용할 수 있다.
2) GROUP BY절을 통해 그룹화된 결과 값의 범위를 제한하는 데 사용

SELECT DEPTNO, JOB, ROUND(AVG(SAL)) FROM EMP
WHERE DEPTNO  IN (10, 20)
GROUP BY DEPTNO, JOB 
HAVING AVG(SAL) >= 1000;

1. HAVING절의 기본 사용법

  1. HAVING절을 사용할 때 유의점
    1) WHERE절은 출력 대상 행을 제한하고, HAVING절은 그룹화된 대상을 출력에서 제한 - HAVING 절은 집계 함수만 사용 가능
    2) HAVING절 대신 WHERE절을 잘못 사용했을 경우
  • 그룹화와 관련된 여러 함수
  1. ROLLUP 함수를 적용한 그룹화
    -중간 중간 요약을 보여줌
  2. CUBE 함수를 적용한 그룹화
    -각각 요소마다 통계를 내줌

여러 테이블을 하나의 테이블처럼 사용하는 조인

조인

  1. 집합 연산자와 조인의 차이점
  2. 여러 테이블을 사용할 때의 FROM절

EMP.DEPTNO = DEPT.DEPTNO
3. 테이블의 별칭 설정

FROM 테이블명 "별칭"

큰 따옴표는 한다어로 구성된 경우는 생략 가능

조인 종류

  1. 등가 조인
    -공통적인 값의 일치 조건을 가지고 테이블을 결합하는 방식
    -동등 조인, 내부(inner) 조인

  2. 비등가 조인
    -등가 조인이 아닌 조인, 암묵적 조인
    -범위에 대한 조회

  3. 자체 조인
    -같은 테이블 내에서 조인

  1. 외부 조인

SQL-99 표준 문법으로 배우는 조인

등가 조인(INNER JOIN)

    1. NATUAL JOIN
SELECT * FROM EMP NATURAL JOIN DEPT;

공통적인 이름의 컬럼이 단 1개

    1. [INNER]JOIN ~ USING
SELECT * FROM EMP JOIN DEPT USING(DEPTNO);

공통적인 이름의 컬럼이 1개 이상
USING(공통 컬럼)

    1. JOIN ~ ON

공통적인 값을 가진 컬럼명이 서로 동일하지 않은 경우

외부 조인

    1. OUTER JOIN

1) 왼쪽 외부 조인
LEFT [OUTER] JOIN

LEFT JOIN DEPT_JOIN D ON E.DEPTNO = D.DEPTNO;

2) 오른쪽 외부 조인
RIGHT [OUTER] JOIN

RIGHT JOIN DEPT_JOIN D ON E.DEPTNO =D.DEPTNO;
    1. 세 개 이상의 테이블을 조인할 때
      FULL [OUTER] JOIN
FULL JOIN DEPT_JOIN D ON E.DEPTNO =D.DEPTNO;

참고)

SQL

DDL - Data Definition Language : 데이터 정의어

-데이터의 구조를 정의하는 언어
-실행하자마자 COMMIT 바로 실행 -> 바로 영구 반영

DML - Data Manipulation Language : 데이터 조작어

-INSERT, UPDATE, DELETE, SELECT - DQL
-COMMIT, ROLLBACK이 적용될 수 있음

DCL - Data Control Language : 데이터 제어어

-GRANT, REVOKE
-COMMIT, ROLLBACK - TCL

세션 : 연결 시작, 종료

0개의 댓글