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 |
댓글