참고

2020-08-13-02)문자열함수.sql
2020-08-14-01)문자열함수2.sql

1. INITCAP, LOWER, UPPER

1) LOWER(c)

  • 주어진 c 문자열의 모든 문자를 소문자로 변환하여 반환
  • 주로 비교문에서 사용

예시

1. 사원테이블에서 사원의 이름과 이메일 값을 문자로 변환하여 출력하시오

2. 사원테이블에서 LAST NAME이 'G'로 시작하는 사원을 조회하시오

  • 단 Alias는 사원명, 부서코드, 직책코드, 급여

3. 상품테이블(PROD)에서 분류가 전자제품(P102)에 속한 상품의 수를 출력하시오

  • java에서는 주로 코드를 소문자로 짜기때문에 일어날 수 있는 일

4. 사원테이블의 사원이름을 모두 소문자로 변환하여 저장하시오

2) UPPER(c)

  • c에 저장된 문자열의 모든 문자를 대문자로 변환

예시

1. 사원테이블의 사원이름을 모두 대문자로 변환하여 저장하시오

3) INITCAP(c)

  • 각 단어의 첫 글자만 대문자로 변환
  • 이름 표기법에 주로 사용

예시

사원테이블의 이름을 첫 글자만 대문자로 변환하여 저장하시오

2. CONCAT(c1,c2)

  • c1문자열과 c2문자열을 결합하여 반환
  • '||' 연산자와 같은 기능
  • '||' 보다 사용이 어려워 잘 쓰지않음

예시

회원테이블에서 마일리지가 3000이상인 회원정보를 조회하시오

  • Alias는 회원명, 주민번호, 마일리지, 직업
  • 단, 주민번호는 XXXXXX-XXXXXXX 형식으로 출력하되 CONCAT을 사용할 것

3. SUBSTR(c, pos[,len])

  • 자바: pos 시작, len 끝나는 위치 오라클: len 갯수
  • 주어진 문자열 c에서 pos위치에서 len갯수 만큼의 문자열을 추출하여 반환
  • pos 값이 0인 경우 1로 취급
  • len이 생략되면 pos 위치 이후의 모든 문자열을 반환
  • 가장 많이 사용되는 문자열 함수

예시

회원테이블에서 주민등록번호를 이용하여 여성회원들의 나이를 출력하시오.

  • Alias는 회원명, 주민번호, 나이, 마일리지

문제

사원테이블에서 근속년수 15년 이상인 사원들에게 특별 보너스를 지급하려한다

  • 보너스는 급여 * (근속년수/100)이며 소숫점 첫째자리에서 반올림한다.
  • 지급액=급여+보너스
  • Alias는 사원명, 부서코드, 입사일, 근속년수, 보너스, 급여, 지급액이다.

TO_NUMBER(SUBSTR(HIRE_DATE,1,4)) 사용

EXTRACT(YEAR FROM HIRE_DATE) 사용

조건절에서 이미 범위를 지정해줬기때문에 NULL처리 함수를 사용하지 않아도 됨

4. LTRIM, RTRIM, TRIM

  • LTRIM(c [,set]), RTRIM(c [,SET]), TRIM(c)
  • 무효의 공백을 제거하는 함수
  • LTRIM은 왼쪽에 존재하는 무효의 공백제거
  • RTRIM은 오른쪽에 존재하는 무효의 공백제거
  • LTRIM은 양쪽에 존재하는 무효의 공백제거
  • 주어진 문자열 c에서 set으로 지정된 문자열을 왼쪽(LTRIM), 오른쪽(RTRIM) 찾아 제거
    • set이 생략되면 set은 공백을 의미함.
    • 단어 내부에 있는 공백은 제거할 수 없음 -> 다른 함수 사용
  • 원래는 특정 문자열을 제거하는 함수지만 공백 제거하는 용도로 쓰여짐
    • VARCHAR2는 남는 자리 알아서 없어지지만 CHAR는 공백으로 채워짐
    • CHAR: 숫자가 문자로 변환될때 오른쪽 정렬이 되어서 왼쪽에 공백생길때 사용됨

예시

1-1. 거래처 테이블의 거래처명의 데이터 타입을 CHAR(40)으로 변경하시오



1-2. 거래처 테이블의 거래처명의 데이터 타입을 CHAR(40)으로 변경하시오.

  • 단, Alias 거래처코드, 거래처명, 주소

2. 거래처 테이블에서 거래처 기본주소 중 대전에 있는 거래처를 검색하여 '대전' 문자열을 제거하시오

2-1. 번외

5. LPAD(c,n,expr), RPAD(c,n,expr)

  • 주어진 문자열의 왼쪽(LPAD) 또는 오른쪽(RPAD)에 특정문자열을 삽입할 때 사용
  • c 문자열에 왼쪽(LPAD)에 n자리만큼 expr문자열을 삽입하여 c를 반환
  • expr이 생략되면 공백이 삽입

예시

1. LPAD

2. RPAD

6. REPLACE(c, ser_c, rep_c)

  • 문자열 c 에서 문자열 'ser_c'를 찾아서 문자열'rep_c'로 대치시킴
  • 단어 내부의 공백제거에 주로 사용

예시

1.

2. 거래처 테이블의 거래처명의 데이터 타입을 VARCHAR2(40)으로 변경하시오

  • 위에서 CHAR(40)으로 바꾸면서 공백이 그대로 40만큼 채워졌다는 걸 까먹지 말것

7. INSTR(c,substr,pos[,occur])

  • 문자열 c 에서 substr문자열을 찾아 그 문자열의 위치 값을 반환
  • pos 시작위치값으로 default는 1임
  • occur는 반복 횟수를 정의
  • occur 생략되면 substr 찾아서 몇번째 있는지 확인

8. LENGTH(c), LENGTHB(c)

  • 문자열 c의 길이 또는 byte수를 반환
  • (참고) B:byte b:bit
profile
갈 길이 멀다

0개의 댓글