[오라클] 단일행함수 - 문자함수, 숫자함수 날짜함수
본문 바로가기
IT. 컴퓨터

[오라클] 단일행함수 - 문자함수, 숫자함수 날짜함수

by 솔기잇 2020. 6. 9.

 

1. 문자함수

    A. UPPER -- 모든 문자를 대문자로 변환시켜주는 함수

    B. LOWER -- 모든 문자를 소문자로 변환시켜주는 함수

    C. INITCAP -- 첫글자만 대문자로 변환시키고 나머지 글자는

                  -- 모두 소문자로 변환시켜주는 함수

 

 ------------------------------------------------------------------

SELECT JOB,UPPER(JOB), LOWER(JOB),INITCAP(JOB)

FROM EMP

WHERE JOB ='sAleSMan'

 

<<>>

JOB            UPPER(JOB)       LOWER(JOB)    INITCAP(JOB)

sAleSMan          SALESMAN        salesman           Salesman

 ------------------------------------------------------------------

 

 

    D. CONCAT -- 두개의 문자열을 연결시켜주는 함수 

 

 ------------------------------------------------------------------   

SELECT NAME,JIK,

          CONCAT(NAME,JIK) -- 두개만 붙일 있다.

FROM TBL_NEWSAWON;  

   

<>

NAME    JIK        CONCAT(NAME,JIK)

한석규    사장       한석규사장

두석규    부장       두석규부장

세석규    과장       세석규과장

네석규    사원       네석규사원

오연수    사원       오연수사원         

 ------------------------------------------------------------------ 

 

SELECT NAME,JIK,JUBUN,

           --CONCAT(NAME,JIK || JUBUN),

            CONCAT(CONCAT(NAME,JIK), JUBUN )

FROM TBL_NEWSAWON;

   

   

<>

NAME    JIK        JUBUN  CONCAT(CONCAT(NAME,JIK),JUBUN)

한석규    사장       7110031234567           한석규사장7110031234567

두석규    부장       7210031234567           두석규부장7210031234567

세석규    과장       7310031234567           세석규과장7310031234567

네석규    사원       7410031234567           네석규사원7410031234567

오연수    사원       7510032234567           오연수사원7510032234567

일용이    부장       8110031234567           일용이부장8110031234567

 

   

DESC TBL_SAWON;

 ------------------------------------------------------------------   

   

   

E. SUBSTR --특정 문자열에서 특정한 일부부만 추출할 때 사용 하는 함수이다.

   

 

 

 ----------------------------------------------------------------------------   

    SELECT 'KH정보교육원',

            SUBSTR('KH정보교육원',1,4), -- 첫번째 글자에서 4번째까지 뽑아라

            SUBSTR('KH정보교육원',2,4),

            SUBSTR('KH정보교육원',3)  -- 세번째 글자부터 끝까지 뽑아라

    FROM DUAL;

 

 

   <>

    KH정보교육원            KH정보        H정보교       정보교육원

 ------------------------------------------------------------------------------------

 

 

 

SELECT NAME,SUBSTR(JUBUN,1,6),JIK

 FROM TBL_NEWSAWON;

 

 

 <퀴즈> TBL_NEWSAWON 테이블에서 여자만

        사원번호, 사원명, 직급을 나타내세요.

       

<>

SELECT JUBUN,SANO,NAME, JIK

FROM TBL_NEWSAWON       

WHERE SUBSTR (JUBUN,7,1)=2 OR SUBSTR (JUBUN,7,4)=4;  -- IN (2,4)

 

 ------------------------------------------------------------------------------------

 

 

 SELECT 'KH정보교육원',

            SUBSTRB('KH정보교육원',1,4), -- B는바이트를 뜻한다. ~4바이트까지

            SUBSTRB('KH정보교육원',2,4),

            SUBSTRB('KH정보교육원',4) 

 FROM DUAL;

 

 <>

 'KH정보교육원'  SUBSTRB('KH정보교육원',1,4)    SUBSTRB('KH정보교육원',2,4)

KH정보교육원                            KH

 

 

SUBSTRB('KH정보교육원',4)

    H정보교육원

 

 ------------------------------------------------------------------------------------ 

 

  

   F. REVERSE -- 행당 문자열로 거꾸로 보여 주는 함수이다.

 

 

 ------------------------------------------------------------------------------------   

 SELECT 'ORACLE','KH정보교육원',

         REVERSE('ORACLE'),   -- 거꾸로 돌린다는

         REVERSE ('KH정보교육원')

 FROM DUAL;

 

 <>

 ORACLE              KH정보교육원   ELCARO               걋낢맏ㅑHK

 

 ------------------------------------------------------------------------------------ 

 

 SELECT JUBUN, REVERSE(JUBUN)

 FROM TBL_NEWSAWON;

 

 <>

 7110031234567         7654321300117

7210031234567           7654321300127

7310031234567           7654321300137

 

 ------------------------------------------------------------------------------------ 

 

 

    G. INSTR -- 어떤 문자열에서 특정글자가 나오는 위치값을 알려주는 함수이다.

            

 

 ------------------------------------------------------------------------------------          

SELECT 'KH정부교육원 통신정보학',

       INSTR('KH정부교육원 통신정보학', '정보',1,1),

       INSTR('KH정부교육원 통신정보학', '정보',4,1),

       INSTR('KH정부교육원 통신정보학', '정보',1,2),

       INSTR('KH정부교육원 통신정보학', '정보',1,3),

       INSTR('KH정부교육원 통신정보학', '정보',2),  

       INSTR('KH정부교육원 통신정보학', '정보',4)

FROM DUAL;   

 

 

<>

KH정부교육원 통신정보학 11         11         0           0           11         11         

 

 ------------------------------------------------------------------------------------  

 

 

 

–- 테이블 생성

 CREATE TABLE TBL_FILEINFO 

 (FILENO    NUMBER

 ,FILENAME  VARCHAR2(500)

 );

 << 넣기>>

 INSERT INTO TBL_FILEINFO VALUES

 (1, 'C:\MYDOCUMENT\SALES\W01011월영업계획.DOC');

  INSERT INTO TBL_FILEINFO VALUES

 (2, 'D:\ORACLESTUDY.TXT');

  INSERT INTO TBL_FILEINFO VALUES

 (3, 'C:\MUSIC\MP3\KOREA\DONGYO\학교종이땡땡땡.MP3');

 

 COMMIT;

 

 SELECT *

 FROM TBL_FILEINFO;

 

-------------------------------------------------------------------------------

 

<문제>

1           C:\MYDOCUMENT\SALES\W01011월영업계획.DOC

2           D:\ORACLESTUDY.TXT

3           C:\MUSIC\MP3\KOREA\DONGYO\학교종이땡땡땡.MP3

최종 파일 네임만 나타내 주세요.

              

<<>>

SELECT SUBSTR(FILENAME,1,1),

   REVERSE (SUBSTR  (REVERSE (FILENAME),1, INSTR (REVERSE (FILENAME),'\',1,1)-1))

FROM TBL_FILEINFO;

 

 

<>

C           W01011월영업계획.DOC

D           ORACLESTUDY.TXT

C           학교종이땡땡땡.MP3

 

------------------------------------------------------------------------------ 

 

 

H. LENGTH -- 문자열의 길이를 나타내는 함수

 

 

SELECT LENGTH('KH정보교육원'), LENGTH('KH 정보교육원')

FROM DUAL;

--> 7 (문자열의 길이를 나타남) , 8

 

SELECT LENGTHB('KH정보교육원'), LENGTHB('KH 정보교육원')

FROM DUAL;

--> 12  ,            13

 

---------------------------------------------------------------------------

 

 

   I. LPAD -- PAD는 채운다는 의미(LEFT PAD 약자) 왼쪽부터 채워라

   J. RPAD -- RIGHT PAD 약자 오른쪽부터 채워라     

          

SELECT LPAD('KH정보교육원', 20,'S')          

FROM DUAL;                          --

-- 1.  20Byte를 확보해라(20글자가 아니다.)

-- 2. 확보한 20 byte 공간 안에 KH정보교육원(12BYTE)D을 넣어라.

-- 3.  KH정보교육원(12BYTE)을 넣고 남은 왼쪽 빈공간에

--    'S'를 넣어 채워라.

 

--> SSSSSSSSKH정보교육원 

 

 

 

SELECT LPAD('KH정보교육원', 20,'한국')          

FROM DUAL;

--> 한국한국KH정보교육원

 

 

SELECT LPAD('*',6,'*')

FROM DUAL;

-- --> ******

 

---------------------------------------------------------------------------

 

--TRIM --TRIM은 잘라내는 것

-- LTRIM / RTRIM

 

SELECT 'BDABBABCAAACCDAABBCC',

       LTRIM('BCABBABCAAACCDAABBCC','BAC')

-– 왼쪽부터 잘라나가다가 D 를 만나서 그만

FROM DUAL;

 

<< 결과 >>

--> BDABBABCAAACCDAABBCC DAABBCC

 

-- ==> LTRIM 은 출발점이 왼쪽

--     BAC 가 나오면 TRIM(삭제)

--     그러므로 ABC에 포함되지 않은 D 가 나올 때까지

--     왼쪽부터 삭제한 후 그 결과 값을 보여준다.

 

--> BDABBABCAAACCDAABBCC BCABBABCAAACCD (RTRIM의 결과 값)

 

 

SELECT '김성훈 멋지다.',

          'KH정보교육원' || '김성훈 멋지다. '

FROM DUAL;

 

<<결과 >>

-- > 김성훈 멋지다.     KH정보교육원          김성훈 멋지다.

 

 

 

SELECT LTRIM('김성훈 멋지다.'),

          'KH정보교육원' ||

          LTRIM('김성훈 멋지다. ')

FROM DUAL;

 

<<결과 >>

 -- > 김성훈 멋지다.              KH정보교육원김성훈 멋지다.

 

 

 

SELECT ''||'한민국'||'짝짝짝짝짝~!',

       ''||LTRIM('한민국')||'짝짝짝짝짝~!',

       ''||RTRIM('한민국')||'짝짝짝짝짝~!'

FROM DUAL;

 

<<결과 >>         

-->             한민국        짝짝짝짝짝~!

--> 대한민국        짝짝짝짝짝~!            한민국짝짝짝짝짝~!

-->             한민국짝짝짝짝짝~!


close