+ 00 00 0000

Have any Questions?

05_Simple Coding – Oracle – Function 기초_1 – 기본 요약

05_Simple Coding – Oracle – Function 기초_1 – 기본 요약

📃 요약

전세계 기업시장에서 굉장히 활용 많이 하는 관계형 DB 로 오라클이 있음.
상용 가격은 굉장히 비싸고, 유지보수 비용도 굉장히 높은것으로 알려져 있음.
마이크로서비스가 활성화 되면서 예전과 달리 비싼 비용의 오라클보다 무료 DB 로 전환하는 사례도 나타나고 있음
주로 서비스업체 중심으로 Mysql / Maria DB 가 많이 활용되고 SI 프로젝트는 아직도 전통의 강자 오라클이 많이 사용되고 있음

요소 기술 :

– Basic : SQL

📃 기술 구현

스펙 :

- SQL Developer
- Oracle SQL

📃 내장 Function 기초

- 자바에서와 같이 여러가지 계산, 문자열 조작 등 편리한 기능을 제공
- SQL 문 안에서 사용

1. 문자열 함수

1) 문자 함수

- 대소문자 변경 , 첫글자만 대문자로 변경 함수
사용법 : 
    - 대문자 변환 : UPPER('문자열') -- 문자열 대신 컬럼명도 올 수 있음
    - 소문자 변환 : LOWER('문자열')
    - 첫글자만 대문자 변환 : INITCAP('문자열')

예 : 
SELECT 'Oracle mania'
       ,UPPER('Oracle mania') AS 대문자
       ,LOWER('Oracle mania') AS 소문자
       ,INITCAP('Oracle mania') AS "첫글자만 대문자"
FROM DUAL;

2) 문자 길이를 RETURN 하는 함수

- LENGTH(문자열) : 한글/영어 상관없이 문자개수를 세어서 RETURN 하는 함수
- 코딩 언어셋 : 영어 표현(1BYTE), 한글 표현(3BYTE) [UTF-8 표현식(국제표준)]
예 : 
SELECT LENGTH('Oracle mania')
      ,LENGTH('오라클매니아')
FROM DUAL;

3) 문자 조작 함수

- 문자열 붙이기
사용법 : 
    - 함수 형태 : CONCAT('문자열','문자열2')
    - 기호 형태 : '문자열' || '문자열2'
예 : 
SELECT 'Oracle'
      ,'mania'
      ,CONCAT('Oracle','mania')
      ,'Oracle' || 'mania'
FROM DUAL;

4) 문자 조작 함수

- SQL : 인덱스번호(1부터 시작)
사용법) 
    - SUBSTR(대상컬럼,시작위치,자를개수)
    - 단, 시작위치가 음수이면 뒤에서 셈)
예 : 
SELECT SUBSTR('Oracle mania',4,3)
      ,SUBSTR('Oracle mania',-1,1)
FROM DUAL;

5) 문자열에서 대상 문자를 찾아서 인덱스번호를 RETURN 함수

- SQL : 인덱스번호 : 1부터 시작
SELECT INSTR('Oracle mania','a')
      ,INSTR('오라클매니아','라')
FROM DUAL;

6) 컬럼에 어떤 문자를 붙이기 함수

- LPAD, RPAD
- LPAD 함수 : 어떤 문자를 왼쪽에 채우기 함수
- RPAD 함수 : 어떤 문자를 오른쪽에 채우기 함수
사용법) 
    - LPAD(대상컬럼, 자리수, 채울문자)
      ( 자리수에서 빈칸은 채울문자로 채워짐(왼쪽))

SELECT LPAD(SALARY, 10, '*')
FROM EMPLOYEE;

7) 컬럼에 어떤 문자를 붙이기 함수

- LPAD, RPAD
- LPAD 함수 : 어떤 문자를 왼쪽에 채우기 함수
- RPAD 함수 : 어떤 문자를 오른쪽에 채우기 함수
사용법) 
    - LPAD(대상컬럼, 자리수, 채울문자)
      ( 자리수에서 빈칸은 채울문자로 채워짐(왼쪽))

SELECT LPAD(SALARY, 10, '*')
FROM EMPLOYEE;

사용법 :
    - RPAD(대상컬럼, 자리수, 채울문자)
      ( 자리수에서 빈칸은 채울문자로 채워짐(오른쪽))
SELECT RPAD(SALARY, 10, '*')
FROM EMPLOYEE;

8) 문자열에서 공백제거하기 :

- LTRIM   : 왼쪽에 공백 제거하기 
- RTRIM,  : 오른쪽에 공백 제거하기
- TRIM(*) : 양쪽에 공백 제거하기
사용법) LTRIM(컬럼명): 왼쪽 공백제거
      RTRIM(컬럼명): 오른쪽 공백제거
      TRIM(컬럼명): 양쪽 공백제거

SELECT 'Oracle mania'
      ,LTRIM('   Oracle mania   ')
      ,RTRIM('   Oracle mania   ')
      ,TRIM('   Oracle mania   ')
FROM DUAL;

2. 숫자 함수

1) 반올림 :

- ROUND()
사용법 : ROUND(대상컬럼, 자리수)
참고  :  자리수가 음수일경우 일의 자리부터 반올림이 됨

예 : 
SELECT 98.7654
     , ROUND(98.7654)     -- 0 자리에서 반올림
     , ROUND(98.7654, 2)  -- 2nd 자리에서 반올림
     , ROUND(98.7654, 1)  -- 1st 자리에서 반올림
     , ROUND(98.7654, -1) -- 일의 자리에서 반올림(참고)
FROM DUAL;

2) TRUNC :

- 버림(내림), 특정자리수에서 버림
사용법) TRUNC(대상컬럼, 자리수)
참고) 자리수가 음수일경우 일의 자리부터 버림이 됨

예 : 
SELECT 98.7654
     , TRUNC(98.7654)
     , TRUNC(98.7654, 2)
     , TRUNC(98.7654, -1)
FROM DUAL;

3) MOD :

- 나머지 연산 함수 ( == % : 나머지 연산자(js))
사용법) MOD(대상컬럼, 나눌숫자) : 결과 나머지가 RETURN 됨

예 : 
SELECT MOD(31, 2)
     , MOD(31, 5)
     , MOD(31, 8)
FROM DUAL;

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다