Oracle 3

KDG·2021년 1월 26일
0

SQL Plus 형식 명령어

  • COLUMN FORMAT 명령어

ex)

column ename format A40
column comm format 9,999,999
column comm format 0,000,000

문자함수

1. 대소문자 변환 함수

  • UPPER
    대문자로 변환

  • LOWER
    소문자로 변환

  • INTCAT
    첫 글자만 대문자로, 나머지 글자는 소문자로 변환

2. 문자 길이 반환 함수

  • LENGTH
    문자 데이터가 몇 개의 문자로 구성되었는지 길이를 알려줌(한글 1byte)
  • LENGTHB
    문자의 길이를 반환하는데 바이트 수를 알려줌(한글 포맷에 따라 2~3byte로 인식됨)

ex)

1. SELECT LENGTH('HelloWorld'), LENGTHB('HelloWorld') FROM dual;

  LENGTH('HELLOWORLD') LENGTHB('HELLOWORLD')
  -------------------- ---------------------
                    10                    10

2. SELECT LENGTH('헬로우월드'), LENGTHB('헬로우월드') FROM dual;

   LENGTH('헬로우월드')   LENGTHB('헬로우월드')
  -------------------- ---------------------
                     5                    15

3. 문자 조작 함수

  • CONCAT
    문자열을 결합
    ex) CONCAT('Hello', 'World') -> HelloWolrd

  • SUBSTR(대상, 시작 위치, 추출할 개수)
    기존 문자열에서 일부만 추출. 문자열의 시작 위치부터 개수만큼의 문자만을 출력

ex)

1. SELECT SUBSTR('Hello Wolrd', 2,3), SUBSTR('Hello Wolrd', -2,3) FROM dual;

    SUBSTR SUBS
    ------ ----
    ell    rd

2. SELECT * FROM emp WHERE SUBSTR(ename, 1, 1) = 'A';  : 첫 번째 글자 한개를 추출해서 A로 시작하는 사원만 출력

     EMPNO ENAME                JOB                       MGR HIREDATE        SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
      7499 ALLEN                SALESMAN                 7698 81/02/20       1600        300         30
     
  • INSTR(대상, 찾을 글자, 시작 위치, 몇 번째 발견)
    문자열 내에 해당 문자가 어느 위치에 존재하는지를 알려줌

ex)

1. SELECT INSTR('Hello Wolrd', 'o', 1, 2) FROM dual;  : 'o'를 찾는데 1번째 부터 시작해 2번째 글자를 출력

    INSTR('HELLOWOLRD','o', 1, 2)
    ---------------------------
                              8

2. SELECT * FROM emp WHERE INSTR(ename,'R', 3, 1) = 3;  : 세 번째 자리가 'R'인 사원을 검색

     EMPNO ENAME                JOB                       MGR HIREDATE        SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
      7521 WARD                 SALESMAN                 7698 81/02/22       1250        500         30
      7654 MARTIN               SALESMAN                 7698 81/09/28       1250       1400         30
      7844 TURNER               SALESMAN                 7698 81/09/08       1500          0         30
      7902 FORD                 ANALYST                  7566 81/12/03       3000                    20
     
  • PAD(대상, 자릿수, 특정 기호)
    • LPAD : 컬럼이나 대상 문자열을 명시된 자릿수에서 오른쪽에 나타내고, 남은 왼쪽 자리를 특정 기호로 채움
    • RPAD : 컬럼이나 대상 문자열을 명시된 자릿수에서 왼쪽에 나타내고, 남은 오른쪽 자리를 특정 기호로 채움

ex) LPAD(ename, 10, '@') : 사원 이름앞에 10자리를 마련하고 빈칸을 '@'로 채움

  • TRIM
    • LTRIM : 문자열의 왼쪽(앞)의 공백 문자들을 삭제
    • RTRIM : 문자열의 오른쪽(뒤)의 공백 문자들을 삭제
    • TRIM : 문자열의 앞뒤 공백 문자들을 삭제




** 참고
  • 성윤정 『데이터베이스 성능의 최적화 Oracle 11g 프로그래밍』, 북스홀릭(2011)

0개의 댓글