IT_developers

SQL - scott(개념 + 실습)6 본문

SQL

SQL - scott(개념 + 실습)6

developers developing 2022. 8. 8. 12:00

오라클 함수 : 대소문자 변경, 문자열 길이, 문자열 추출, 특정 문자 위치 찾기, 문자 변경, 문자열 연결, 문자열 공백

※ 대소문자 변경 : UPPER(), LOWER(), INITCAP()

1) 대소문자 변경

SELECT
    ename,
    upper(ename),
    lower(ename),
    initcap(ename)
FROM
    emp;

  • UPPER() : 대문자로 변경
  • LOWER() : 소문자로 변경
  • INITCAP() : 첫 글자만 대문자로 변경

 

※ 문자열 길이 : LENGTH(), LENGTHB()

2) 문자열 길이

SELECT
    length('한글'),
    lengthb('한글'),
    length('ab'),
    lengthb('ab')
FROM
    dual;

  • LENGTH() : 문자열의 길이
  • LENGTHB() : 문자열 바이트 수 반환

한글 : 3byte, 영어 : 1byte

daul : SYS가 소유하는 테이블. 임시 연산이나 함수의 결과값 확인하는 용도.

FROM dual;이 없다면 결과값이 출력 되지 않음.

 

3) emp 테이블에 ename 문자열 길이 알아보기

SELECT
    ename,
    length(ename)
FROM
    emp;

실습) 직책이름이 6글자 이상인 사원 조회

SELECT
    *
FROM
    emp
WHERE
    length(job) >= 6;

 

※ 문자열 추출(=잘라내기) : SUBSTR(원본데이터, 시작위치,[추출길이])

4) 문자열 추출 

SELECT
    job,
    substr(job, 1, 2), -- 앞에서 두글자 잘라내기
    substr(job, 3, 2), -- 세번째자리에서 두개 잘라내기
    substr(job, 5) -- 추출길이가 없음. 다섯번째 위치부터 전부 잘라내기
FROM
    emp;

  • 추출 길이는 옵션 : 들어올수도 있고 안들어올 수도 있음
  • 0번에서 시작하지 않음
  • 자바의 서브스트링과 비슷한 느낌

 

실습) emp 테이블의 모든 사원 이름(ename)을 세번째 글자부터 끝까지 출력

SELECT
    ename,
    substr(ename, 3)
FROM
    emp;

※ 특정 문자 위치 찾기 : INSTR(문자열 데이터, 위치를 찾으려고 부분문자,시작 위치,시작위치에서 찾으려는 문자 몇번째인지 지정)

5) 문자열 데이터 안에서 특정 문자 위치 찾기

SELECT
    instr('HELLO ORACLE!', 'L')       AS instr1,
    instr('HELLO ORACLE!', 'L', 5)    AS instr2,
    instr('HELLO ORACLE!', 'L', 2, 2) AS instr3
FROM
    dual;

 

실습) 사원이름에 S가 있는 사원 조회

SELECT
    *
FROM
    emp
WHERE
    instr(ename, 'S') > 0;

 

※ 다른 문자로 변경 : REPLACE(원본, 찾는 문자, 바꿀 문자)

6) 특정문자를 다른 문자로 변경

SELECT
    '010-1234-5678'                    AS replace_before,
    replace('010-1234-5678', '-', ' ') AS replace1,
    replace('010-1234-5678', '-')      AS replace2
FROM
    dual;

※ 문자열 연결 : CONCAT(문자1, 문자2)

7) 문자열 연결

SELECT
    concat(empno, ename)
FROM
    emp;

문자열 연결은 최대 두개까지만 됨.

 기호사용) CONCAT == ||

SELECT
    empno || ename
FROM
    emp;

 

실습 ) CONCAT 안에 CONCAT 사용

SELECT
    concat(empno, concat(':', ename))
FROM
    emp;

기호사용) CONCAT == ||

 SELECT

    empno
    || ':'
    || ename
FROM
    emp;

 

※ 문자열 공백 :  TRIM(), LTRIM(), RTRIM()

8) 문자열 

SELECT
    '   이것이   ',
    TRIM('   이것이   '), -- 양쪽 공백 제거
    ltrim('   이것이   '), -- 왼쪽 공백 제거
    rtrim('   이것이   ') -- 오른쪽 공백 제거
FROM
    dual;

  • 특정 문자열 제거 : 아무것도 안주면 공백 제거

 

'SQL' 카테고리의 다른 글

SQL - scott(개념 + 실습)8  (0) 2022.08.10
SQL - scott(개념 + 실습)7  (0) 2022.08.09
SQL- scott(개념 + 실습)5  (0) 2022.08.07
SQL - scott (개념 + 실습)4  (0) 2022.08.06
SQL - scott (개념+실습) 연산자  (0) 2022.08.05
Comments