나중에 개념 적기
UPPER, LOWER 함수 : 대소문자 바꿔주기
-- [개념 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-1] 사원이름과 사원이름의 길이 출력하기
Select ename, length(ename) From emp;
-- [실습 2-2] 사원 이름의 길이가 5이상인 사원정보 출력하기
Select * From emp
Where length(ename) >= 5;
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;
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 테이블은 오라클의 최고 권한 관리자 계정이 SYS 소유의 테이블로
SCOTT 계정도 사용할 수 있는 더미(dummy) 테이블이다.
임시 연산이나 함수의 결과 값 확인 용도로 종종 사용된다.
데이터의 빈 공간을 특정 문자로 채우기
LPAD : Left Padding(왼쪽 패딩)
-- [실습 6-1] RPAD 함수를 사용하여 개인정보 뒷자리 *표시로 출력하기
Select rpad('920101-', 14,'*') From dual;
두 개의 문자열 데이터를 하나의 데이터로 연결해 주는 함수
두 열 사이에 콜롬(:) 넣고 연결하기
-- [실습 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;