리주의 프로그래밍 공부

20.12.31 오라클 DB 공부 본문

DB 공부/오라클(Oracle)

20.12.31 오라클 DB 공부

Leezu_ 2020. 12. 31. 18:53

문자열함수

    문자열 추출함수 SUBSTR(문자열, 시작위치, 길이)

        ex) SELECT SUBSTR('HELLO', 1, 3) FROM DUAL;   => 첫번째 문자부터 3개 가져오기 HEL

             SELECT SUBSTR('HELLO', 3) FROM DUAL;   => 3번째 문자부터 가져오기 LLO

             SELECT SUBSTRB('HELLO',3) FROM DUAL;   => 3번째 byte에서부터 가져오기 LLO

 

       문제. 모든 학생의 이름과 출생 월만을 조회하시오.

             => SELECT NAME, SUBSTR(BIRTHDAY, 6, 2) FROM MEMBERS;

 

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

             => SELECT * FROM MEMBERS WHERE SUBSTR(PHONE, 1, 3) = '011';

                  (전체 테이블의 RECORD의 수에 따라 함수호출 횟수가 많아질 수 있음)

             => SELECT * FROM MEMBERS WHERE PHONE LIKE '011%';

 

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

             => SELECT * FROM MEMBERS WHERE SUBSTR(BIRTHDAY, 6, 2) IN ('07, '08', '09');

         

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

             => SELECT * FROM MEMBERS WHERE PHONE IS NULL AND SUBSTR(BIRTHDAY, 6, 2) IN ('07', '08', '09');

 

    문자열 덧셈 함수 CONCAT(문자열, 문자열)

        ex) SELECT CONCAT('홍', '길동') FROM DUAL;

             함수보다는 연산자가 더 빠르므로 SELECT 3 || '4' FROM DUAL 이 더 나음

       

    문자열 트림 함수 : 공백 제거 함수

        ex) SELECT TRIM('          HELLO        ') FROM DUAL;  => 'HELLO'

             SELECT LTRIM('           HELLO       ') FROM DUAL;  => 'HELLO        '

             SELECT RTRIM('           HELLO       ') FROM DUAL;  => '        HELLO'

 

    문자열 소문자 변경 함수 LOWER

        ex) SELECT LOWER('StUdy') FROM DUAL;   => study

    문자열 대문자 변경 함수 UPPER

        ex) SELECT UPPER('stUdY') FROM DUAL;    => STUDY

 

        문제. 회원의 아이디가 'newyear'인 회원을 조회하시오. (단 소/대문자를 가리지 않음)

              => SELECT * FROM STUDENTS WHERE UPPER(ID) = UPPER('newyear');

 

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

        ex) SELECT REPLACE('WHERE WE ARE', 'WE', 'YOU') FROM DUAL;   => WHERE YOU ARE

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

        REPLACE와 다르게, 찾는 문자열하나 당, 대치할 문자열 하나씩 바꿈

        ex) SELECT TRANSLATE('WHERE WE ARE', 'WE', 'YOU') FROM DAUL;     => YHORO YO ARO

             W는 Y로, E는 O로, U는 의미 없어짐

 

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

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

'DB 공부 > 오라클(Oracle)' 카테고리의 다른 글

21.01.11 오라클 DB 공부  (0) 2021.01.11
오라클 DB 공부  (0) 2021.01.05
20.12.26 오라클 DB 공부  (0) 2020.12.26
20.12.25 오라클 DB 공부  (0) 2020.12.25
20.12.24 오라클 DB 공부  (0) 2020.12.24