개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

 

 

 

- expr의 데이터 타입은 NUMBER 데이터 타입만 가능

 

 

* 사용 예
- 101번 학과 학생들의 몸무게 평균과 합계를 출력하여라.

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

* COUNT 함수
- 테이블에서 조건을 만족하는 행의 갯수를 반환하는 함수 

 

 

‘*’은 NULL을 포함한 모든 행의 개수
DISTINCT는 중복되는 값을 제외한 행의 개수
ALL은 중복되는 값을 포함한 행의 개수, 기본값은 ALL
expr 인수에서 사용 가능한 데이터 타입은 CHAR, VARCHAR2, NUMBER, DATE 타입
 

 

 

* 사용 예
- 101번 학과 교수중에서 보직수당을 받는 교수의 수를 출력하여라.

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

* 그룹함수란?
- 테이블의 전체 행을 하나 이상의 컬럼을 기준으로

그룹화하여 그룹별로 결과를 출력하는 함수

- ​그룹함수는 통계적인 결과를 출력하는데 자주 사용

 

- GROUP BY : 전체 행을 group_by_expression을 기준으로 그룹화
- HAVING : GROUP BY 절에 의해 생성된 그룹별로 조건 부여

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* DECODE 함수와 CASE 문

 - DECODE 함수 내부에서 DECODE문을 사용하는 경우에는 성능저하 발생
- UNION ALL를 사용할 경우 동일 테이블에 대한 인덱스 스캔이나 테이블 스캔 반복발생으로 성능저하
 - Concat(‘||’) 함수로 비교대상컬럼를 묶어서 DECODE 함수의 중복사용을 줄이고, CASE 문으로 비교하는 방식 추천(INDEX 주의)

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

* CASE 함수
- CASE 함수는 DECODE 함수의 기능을 확장한 함수
- DECODE 함수는 표현식 또는 칼럼 값이 ‘=‘ 비교를 통해 조건과 일치하는 경우에만 다른 값으로 대치할 수 있지만, CASE 함수에서는 산술 연산, 관계 연산, 논리 연산과 같은 다양한 비교가 가능
- 또한 WHEN 절에서 표현식을 다양하게 정의
- 8.1.7에서부터 지원되었으며, 9i에서 SQL, PL/SQL에서 완벽히 지원
- DECODE 함수에 비해 직관적인 문법체계와 다양한 비교 표현식 사용

 

 

 

 

* 사용 예
- 교수 테이블에서 소속 학과에 따라 보너스를 다르게 계산하여 출력하여라. 학과 번호별로 보너스는 다음과 같이 계산한다. 학과 번호가 101이면 보너스는 급여의 10%, 102이면 20%, 201이면 30%, 나머지 학과는 0%이다.

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

 

* DECODE 함수
- DECODE 함수는 기존 프로그래밍 언어에서 IF문이나 CASE 문으로 표현되는 복잡한 알고리즘을 하나의 SQL 명령문으로 간단하게 표현할 수 있는 유용한 기능

- DECODE 함수에서 비교 연산자는 ‘=‘만 가능

 

 

표현식 또는 칼럼의 값이 SEARCH1 값과 일치하면 RESULT1값을 반환, SEARCH2값과 일치하면 RESULT2 값 반환
- 일치하는 값이 없거나 NULL인 경우에는 기본값 반환
- 기본값이 없는 경우에는 NULL 반환

 

 

 

 

* 사용 예
- 교수 테이블에서 교수의 소속 학과 번호를 학과 이름으로 변환하여 출력하여라. 학과 번호가 101이면 ‘컴퓨터공학과’, 102이면 ‘멀티미디어학과’, 201이면 ‘전자공학과’, 나머지 학과 번호는 ‘기계공학과’(default)로 변환한다. 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

+ Recent posts