그룹함수
그룹함수란?
- 다중행 함수
- 여러 값이 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로 사용한다.
'CS > 데이터베이스' 카테고리의 다른 글
[Database] 집합 연산자, 그룹함수 (UNION, UNION ALL, INTERSECT, MINUS, GROUPING SETS, ROLLUP, CUBE) (1) | 2024.08.21 |
---|---|
[Database] 서브쿼리 정리 (스칼라, 인라인뷰, where절 서브쿼리) (0) | 2024.08.21 |
[Database] JOIN (조인) 정리 (LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN) (0) | 2024.08.21 |
[Database] GROUP BY, HAVING, ORDER BY 정리 (0) | 2024.08.20 |
[Database] 정규화란? (1NF, 2NF, 3NF, BCNF,4NF, 5NF) (0) | 2024.08.16 |