D02-DB 오라클 단일문자열 함수

jin·2022년 8월 19일
0

단일함수

나중에 개념 적기

1. UPPER, LOW, INITCAP

UPPER, LOWER 함수 : 대소문자 바꿔주기

  • UPPER(문자열) : 괄호 안 문자 데이터를 모두 대문자로 변환하여 반환
  • LOWER(문자열) : 괄호 안 문자 데이터를 모두 소문자로 변환하여 반환
  • INITCAP(문자열) : 괄호 안 문자 데이터 중 첫 글자는 대문자로, 나머지는 소문자로 변환 후 반환
-- [개념 1-1] UPPER, LOWER, INITCAP 함수 사용하기
Select upper(ename), lower(ename), initcap(ename)
From emp;
-- [개념 1-2] UPPER 함수로 문자열 비교하기
-- [실습 1-2] 사원 이름이 SCOTT인 데이터 찾기
Select * From emp
Where upper(ename) = 'SCOTT';
Select * From emp 
Where upper(ename) like upper('scott');

2. LENGTH 함수

  • LENGTH함수 : 문자열 길이
-- [실습 2-1] 사원이름과 사원이름의 길이 출력하기
Select ename, length(ename) From emp;
-- [실습 2-2] 사원 이름의 길이가 5이상인 사원정보 출력하기
Select * From emp
Where length(ename) >= 5;

3.SUBSTR 함수

SUBSTR 함수 : 문자열 일부 추출

  • SUBSTR(문자열 데이터, 시작 위치, 추출 길이)
    문자열 데이터의 시작 위치부터 추출 길이만큼 추출한다.
    추출 위치가 음수일 경우에는 마지막 위치부터 거슬러 올라간 위치에서 시작한다.
  • SUBSTR(문자열 데이터, 시작 위치)
    문자열 데이터의 시작 위치부터 문자열 데이터 끝까지 추출한다.
    추출 위치가 음수일 경우에는 마지막 위치부터 거슬러 올라간 위치에서 시작한다.
-- [실습 3-1] SUBSTR 함수 사용하기
Select Job, substr(job, 1,2), substr(job, 3, 2), substr(job,5) 
From emp;
Select job, substr(job, -length(job)), substr(job, -length(job), 2), substr(job, -3)
From emp;

4.INSTR 함수

INSTR 함수 : 문자열 데이터 안에서 특정 문자 위치 찾기
INSTR([문자열 데이터],
[위치를 찾으려는 부분 문자],
[위치 찾기를 시작할 대사 문자열 데이터 위치(선택, 기본값은 1)],
[시작 위치에서 찾으려는 문자가 몇 번째인지 지정(선택, 기본값은 1)])

-- [개념 4-1] INSTR 함수로 문자열 데이터에서 특정 문자열 찾기
-- [해설 INSTR_1] 처음부터 L의 위치 검색
-- [해설 INSTR_2] 5번째 글자부터 L의 위치 검색
-- [해설 INSTR_2] 2번째 글자부터 두번째 L의 위치 검색
Select instr('HELLO, ORACLE!', 'L') as instr_1,
	instr('HELLO, ORACLE!', 'L', 5) as instr_2,
	instr('HELLO, ORACLE!', 'L', 2, 2) as instr_3
From dual;
-- [실습 4-2] INSTR 함수로 사원 이름에 문자 S가 있는 행 구하기
Select * From emp
Where instr(ename, 'S') > 0;
-- [실습 4-3] LIKE 연산자로 사원 이름에 문자 S가 있는 행 구하기
Select * From emp
Where ename like '%S%';

번외. DUAL 테이블

DUAL 테이블은 오라클의 최고 권한 관리자 계정이 SYS 소유의 테이블로
SCOTT 계정도 사용할 수 있는 더미(dummy) 테이블이다.
임시 연산이나 함수의 결과 값 확인 용도로 종종 사용된다.

5. LPAD, RPAD 함수

데이터의 빈 공간을 특정 문자로 채우기
LPAD : Left Padding(왼쪽 패딩)

  • RPAD : Right Padding(오른쪽 패딩)
  • 데이터와 자릿수를 지정한 후 데이터 길이가 지정한 자릿수보다 작을 경우에 나머지 공간을 특정 문자로 채우는 함수
  • LPAD([문자열 데이터 또는 열이름], [데이터의 자릿수], [빈 공간에 채울 문자(선택])
  • RPAD([문자열 데이터 또는 열이름], [데이터의 자릿수], [빈 공간에 채울 문자(선택])
-- [실습 6-1] RPAD 함수를 사용하여 개인정보 뒷자리 *표시로 출력하기
Select rpad('920101-', 14,'*') From dual;

6. CONCAT 함수

두 개의 문자열 데이터를 하나의 데이터로 연결해 주는 함수
두 열 사이에 콜롬(:) 넣고 연결하기

-- [실습 7-1] 두 열 사이에 콜롬(:) 넣고 연결하기
Select empno, ename, concat(empno,concat( ' : ', ename)) From emp;
Select empno, ename, empno|| ' : ' ||ename From emp; --concat 안쓴 버전

위의 함수들 함수 기본 문제

-- [문제 1] 사원 이름을 모두 소문자로 출력하기
Select lower(ename) From emp;
-- [문제 2] 직책 이름이 6글자 이상인 데이터만 출력하기
Select * From emp
Where length(job) >= 6;
-- [문제 3] 모든 사원 이름을 세번째 글자부터 끝까지 출력하기
Select substr(ename, 3) From emp;

0개의 댓글