본문 바로가기
Database/Oracle

ORACLE SQL 문자열 내장 함수 (1)

by oncerun 2020. 4. 15.
반응형

 

 

SUBSTR(문자열 , 시작 위치, 길이)

문자열 추출 함수

문자열을 잘게 쪼갤 수 있는 함수

 

EX) SELECT SUBSTR('HELLO',1,3) FROM DUAL;

HELLO에서 첫 번째 H부터 첫 번째 L까지 자릅니다. 결과 : HEL

 

SELECT SUBSTR('HELLO',3) FROM DUAL;

문자의 3번째 위치부터 자릅니다.  결과 : LLO

 

바이트 단위로 자를 수도 있습니다.

SELECT SUBSTRB('HELLO', 3) FROM DUAL;

영문자 1바이트 한글 3바이트

결과 : LLO

 

회원 중에서 전화번호가 011로 시작하는 회원의 모든 정보를 출력해보자.

회원 테이블은 MEMBERS이고 번호 칼럼은 PHONE이다.

 

SELECT * FROM MEMBERS

WHERE SUBSTR(PHONE,1,3) = '011';

 

WHERE에서 함수가 들어간다면 전체 테이블의 레코드수만큼 호출이 발생된다.

따라서 연산자를 사용하면 좋다.

 

WHERE PHONE LIKE '001%';

 

회원 중에서 생년 월이 7,8,9월인 회원의 모든 정보를 출력하시오.

생년월일 = BIRTHDAY칼럼명

SELECT * FROM MEMBERS

WHERE SUBSTR(BIRTHDAY , 6 , 2) IN ('07', '08', '09');

 

전화번호를 등록하지 않은 회원 중에서 생년 월이 7,8,9월인 회원의 모든 정보

SELECT * FROM MEMBERS

WHERE SUBSTR(BIRTHDAY , 6 , 2) IN ('07', '08', '09') AND PHONE LIKE IS NULL;

 

문자열 덧셈 함수

CONCAT('A, ' B') FROM DUAL;

 

 

A와 B를 더 합니다.

하지만 성능적으로 || 연산자를 사용합니다

 

 

문자열 트림 함수

 

LTRIM('   HELLO   ') FROM DUAL;

RTRIM('   HELLO   ') FROM DUAL;

TRIM('   HELLO   ') FROM DUAL;

 

LTRIM은 왼쪽의 공백을 삭제합니다.

RTRIM은 오른쪽의 공백을 삭제합니다.

TRIM은 양쪽의 공백을 삭제합니다.

 

 

문자열 소문자 또는 대문자 변경 함수(LOWER, UPPER)

 

LOWER('LOVE') FROM DUAL;

LOWER은 전부 소문자로 변경됩니다.

UPPER('love') FROM DUAL;

UPPER은 전부 대문자로 변경됩니다.

 

회원의 아이디가 'love'인 회원을 검색하시오

SELECT * FROM MEMBERS

WHERE UPPER(ID) = UPPER('love');

칼럼의 있는 ID값을 전부 대문자로 변경합니다.

 

데이터는 대, 소문자를 구별하므로  구별하지 않고 검색하고 싶다면 LOWER, UPPER을 사용합니다.

 

 

문자열 대치 함수 REPLACE('문자열', '찾는 문자열', '대치할 문자열') /TRANSLATE()

 

SELECT REPLACE('I IOVE YOU', 'IOVE', 'LOVE') FROM DUAL;

SELECT TRANSLATE('I LOVE YOU', 'IOVE', 'LOVE') FROM DUAL;

TRANSLATE은 특별하다 문자열 전체에서 I를 L로 변경한다. 각 알파벳마다 변경해준다. 길이가 다르면 같은 자릿수까지 변경이 되고 남은 자리는 변경이 되지 않는다.

 

회원의 이름과 주소를 조회하시오 (단. 주소는 빈칸 없이 출력하시오)

 

SELECT NAME, REPLACE(ADDRESS, ' ', '') FROM STUDENTS;

반응형

'Database > Oracle' 카테고리의 다른 글

ORACLE SQL 문자열 내장 함수 (2)  (0) 2020.04.15
ORACLE SQL SELF JOIN  (0) 2020.04.15
ORACLE SQL JOIN  (0) 2020.04.14
Oracle SQL 정규표현  (0) 2020.04.13
SQL TABLE , 자료형  (0) 2020.04.07

댓글