CS/데이터베이스

[Database] SQL 함수 정리 (ORACLE), where 절 분석

대기업 가고 싶은 공돌이 2024. 8. 20. 18:43

그룹함수

그룹함수란?

  • 다중행 함수
  • 여러 값이 input 값으로 들어가서 하나의 요약된 값으로 리턴된다.
  • group by와 함께 자주 사용된다.
  • ORACLE과 SQL-SERVER의 함수가 거의 동일하다.

출처: 홍쌤의 데이터랩

위는 ORACLE의 기준이며

SQL -SERVER에서는 다음과 같이 함수가 달라진다.

  • VARIANCE -> VAR
  • STDDEV -> STDEV

 

일반 함수

  • 그룹 함수를 제외한 나머지 함수를 일반 함수라고 한다. (널 치환 함수 등등,,)

출처: 홍쌤의 데이터랩

  • DECODE: 예시를 봐보자 (DEPTNO,10,A,B) 가 있는데 DEPTNO는 특정 컬럼의 이름이다.
    해달 컬럼의 값이 10과 같다면 A를 반환하고 같지 않다면 B를 반환해라 라는 의미다.
  • NVL은 COMM이란 컬럼에 NULL이 있다면 0으로 바꿔주겠다 라는 의미이다.
    NULL이 아니라면 해당 컬럼의 기존 값을 반환한다.
  • NVL2(COMM,COMM * 1.1, 0)을 보자 COMM이 NULL이라면 0을 반환하고 아니라면 * 1.1 을 반환하라는 의미다.
  • COALESCE 사용 예제

출처 -: 홍쌤의 데이터랩

DEPTNO1과 2중 널이 아닌 값을 출력하며, 둘 다 널이 아니면 맨 앞 순서를 출력한다.

둘 다 널일 경우 마지막에 적어놓은 인수 0을 출력한다.

 

WHERE 절 

  • 테이블의 데이터 중 원하는 조건에 맞는 데이터만 조회하고 싶을 경우 사용
  • 여러 조건 동시 전달 가능
  • NULL 조회 시 IS NULL / IS NOT NULL 연산자를 사용해야 된다. (a = NULL 불가능)

연산자 종류:

출처 홍쌤의 데이터랩
주의사항

  • BETWEEN은 A와 B를 포함한다, 무조건 왼쪽이 작은 수 오른쪽이 큰 수가 나와야 한다.
    문자도 ㄱ,ㄴ,ㄷ 순서를 맞춰서 왼쪽 오른쪽으로 배치해야 한다.

    만약 오른쪽 왼쪽 순서를 맞추지 않는다면 아무것도 출력되지 않는다.
  • 문자나 날짜 상수 표현 시 반드시 홑따옴표 (') 를 사용해야한다. (다른 절에서도 동일함),
    숫자일 때는 아무 따옴표도 붙이지 않는다.

출처: 홍쌤의 데이터랩

  • NOT 연산자
    • 조건 결과의 여집합을 출력한다.
    • NOT 조건 뒤의 연산 결과의 반대 집합을 출력
    • 주로 NOT IN, NOT BETWEEN A AND B, NOT LIKE, NOT NULL로 사용한다.