본문 바로가기
Programming/Database

[Database] 함수 : 문자형

by 공부합시다홍아 2023. 12. 1.
 

[Database] DML TEST

[Database] DML(Data Manipulation Language) Oracle Database 설치 및 동작 확인 설치 방법 Database Software Downloads | Oracle 대한민국 Run the Oracle Database Enterprise Edition Container Image with Docker Contains Oracle Database Enterprise E

hong-study.tistory.com


함수

SQL 의 아주 강력한 특징이며 다음을 위해서 사용할 수 있다.

  • 데이터 계산 수행
  • 개별적인 데이터 항목 수정
  • 행의 그룹에 대해 결과 조작
  • 출력을 위한 날짜와 숫자 형식 설정
  • 열의 데이터타입 변환
단일 행 함수

단일행 함수는 오직 단일 행에서만 적용 가능하고 행별로 하나의 결과를 리턴한다.
단일행 함수에는 아래와 같이 여러 유형이 있다.

  • 문자
  • 숫자
  • 날짜
  • 변환

- 문자 함수
   : 문자 입력을 받고 문자와 숫자 값을 모두 리턴한다. 

- 숫자 함수 
   : 숫자 입력을 받고 숫자 값을 리턴한다.

- 날짜 함수
   : 날짜 데이터 타입의 값에 대해 수행한다. 
   : 숫자를 리턴하는 MONTHS_BETWEEN 함수를 제외한 모든 날짜함수는 날짜 데이터 타입의 값을 리턴한다. 

- 변환 함수
   : 어떤 데이터 타입의 값다른 데이터 타입의 값으로 변환

- 그 이외의 함수
   : NVL, NVL2, LNNVL, NULLIF, COALESCE, DECODE 등이 있다.

다중 행 함수

다중 행 함수는 복수의 행을 조작하여 행의 그룹당 하나의 결과를 리턴한다.

  • 데이터 값을 조작한다.
  • 인수(Argument)를 받고 하나의 결과를 리턴한다.
  • 행별로 하나의 결과를 리턴한다.
  • 데이터타입을 수정할 수 있다.
  • 중첩(nested) 될 수 있다.


문자 함수 

문자 입력을 받고 문자와 숫자 값을 모두 리턴한다. 

LOWER : 모두 소문자 출력
UPPER : 모두 대문자 출력
INITCAP : 첫 문자만 대문자, 나머지는 소문자 출력
SELECT FIRST_NAME, LOWER(FIRST_NAME), UPPER(FIRST_NAME), INITCAP(FIRST_NAME) FROM EMPLOYEES;

LENGTH : 길이
INSTR : 문자열 찾기
SUBSTR : 문자열 자르기(컬럼, 시작인덱스, 자를 문자 개수)
CONCAT : 문자열 붙이기 

 

LENGTH, INSTR

LENGTH , INSTR
SELECT FIRST_NAME, LENGTH(FIRST_NAME), INSTR(FIRST_NAME, 'r') FROM EMPLOYEES;

 

SUBSTR

SELECT FIRST_NAME, SUBSTR(FIRST_NAME, 3, 2), SUBSTR(FIRST_NAME,3) FROM EMPLOYEES;

 

CONCAT

SELECT CONCAT(FIRST_NAME, LAST_NAME), FIRST_NAME || FIRST_NAME FROM EMPLOYEES;

LPAD : 왼쪽에 남은 부분을 주어진 문자로 채운다.
RPAD : 오른쪽에 남은 부분을 주어진 문자로 채운다.
LTRIM : 왼쪽부터 지정된 단어가 발견되면 제거한다.
RTRIM : 오른쪽부터 지정된 단어가 발견되면 제거한다.
REPLACE : 정의된 문자열에서 지정한 문자열을 새로운 문자열로 대체한다.

LPAD, RPAD

SELECT LPAD('ABC', 10, '*'), RPAD('ABC',10,'&') FROM DUAL;

SELECT FIRST_NAME, RPAD(FIRST_NAME, 10, '!'), LPAD(FIRST_NAME, 10, '@') FROM EMPLOYEES;

LTRIM, RTRIM

SELECT TRIM(' HELLO WORLD  '), LTRIM(' HELLO WORLD  '), RTRIM(' HELLO WORLD  ') FROM DUAL;

REPLACE

SELECT REPLACE('피카추 라이추 파이리 꼬북이', '파이리', '야도란') FROM DUAL;

REPLACE 활용

SELECT REPLACE(REPLACE('my dream is hello world', 'hello', '헬로'), ' ', '') FROM DUAL;

 

728x90