Computer Science/Database

SQL | # 4 함수 : 함수로 데이터를 쉽게 가공하기

토마토. 2022. 1. 27. 15:43

모두의 SQL 4장

실습 환경 : Oracle 11g SQL Test


4장 함수 : 함수로 데이터를 쉽게 가공하기


01 함수란?

함수를 사용하는 목적

- 단일 행 함수) 데이터 값을 계산, 조작하기

- 그룹 함수) 행의 그룹에 대해 계산, 요약하기 ( GROUP BY )

- 데이터 타입 변환) 열의 데이터 타입을 변환하기


02 단일 행 함수 : 데이터 값을 하나씩 계산하고 조작하기

<1> 단일 행 함수

- 데이터 타입의 종류 (Oracle)

저장 데이터 데이터 타입 설명
문자 CHAR(N) N 크기만큼 고정 길이 문자 저장
문자 VARCHAR2(N) N 크기만큼 가변 길이 문자 저장
숫자 NUMBER(P,S) 숫자 저장(정수 자릿수, 소수 자릿수)
날짜 DATE 9999년 12월 31일까지 저장 가능함

 

- 단일 행 함수란? 

한번에 하나의 행을 처리하는 함수

 

- 단일 행 함수의 종류

데이터 타입에 따라 [문자 타입 함수], [숫자 타입 함수], [날짜 타입 함수], [변환 타입 함수], [일반 함수]로 구분한다. 

 

- 단일 행 함수의 특징

각 행에 대해 수행함

함수 속 함수로 사용 가능함

 

<2> 문자 타입 함수

- 문자/문자열 데이터는 '작은 따옴표'로 묶어서 표현한다. 

함수 결과 기능
LOWER('ABCD') abcd  
UPPER('abcd') ABCD  
INITCAP('abcd') Abcd  
SUBSTR('ABC', 1, 2) AB 문자열 일부를 선택
REPLACE('AB', 'A', 'E') EB  
CONCAT('AB', 'C') ABC  
LENGTH('AB') 2  
INSTR('ABCD', 'D') 4 문자의 위치 구하기
LPAD('ABCD', 6, '*') **ABCD 왼쪽에 문자 채우기
RPAD('ABCD',6,'*') ABCD** 오른쪽에 문자 채우기
LTRIM('ABCD', 'AB') CD 왼쪽 문자 지우기
RTRIM('ABCD', 'CD') AB 오른쪽 문자 지우기

 

LOWER, UPPER, INITCAP : 문자 데이터를 대소문자로 변환하기

데이터 출력 값을 표준화할 때 유용함

SELECT LOWER(ID), UPPER(FIRST_NAME), INITCAP(LAST_NAME)
  FROM sql_test_a;

 

SUBSTR : 인덱스를 이용해서 지정한 길이 만큼 문자열 추출하기

SELECT LOWER(ID), UPPER(FIRST_NAME), INITCAP(LAST_NAME), SUBSTR(LAST_NAME, 1,1)
  FROM sql_test_a;

 

 

REPLACE : 문자를 찾아서 바꾸기

SELECT LOWER(ID), UPPER(FIRST_NAME), INITCAP(LAST_NAME), SUBSTR(LAST_NAME, 1,1), REPLACE(LAST_NAME, 'J', 'O')
  FROM sql_test_a;

 

LPAD, RPAD : 특정 문자로 자릿수 채우기

데이터 값의 자릿수를 채울 때 유용한 함수

SELECT LPAD(FIRST_NAME, 12, '*') FROM sql_test_a;

 

LTRIM, RTRIM : ** 방향부터 특정 문자 삭제하기

SELECT LTRIM(FIRST_NAME, 'o') FROM sql_test_a;

 

 

TRIM : 공백 제거하기

SELECT FIRST_NAME, TRIM(FIRST_NAME) FROM sql_test_a;

문자열 중간에 있는 공백은 제거되지 않는다. 

 

<3> 숫자 타입 함수

<4> 날짜 타입 함수

<5> 변환 함수

<6> 일반 함수

 

 

 

03 그룹 함수 : 그룹으로 요약하기