ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ SQL ] 오라클 내장함수 1. 단일행함수의 문자함수
    PROGRAMMING/SQL 2022. 4. 25. 23:41

    하루입니다.

     


     

    오라클 내장함수란?

    SQR 작성에 유용한 기능을 제공하는 함수. DBMS 제품마다 조금씩 차이가 있다.

     

     

     

     

    오라클 내장함수의 종류

    • 단일행함수

    각각의 행마다 실행된다. 중첩 사용이 가능하다. select 단일행함수(단일행함수(단일행함수(컬럼명))) 이런 식으로.

    문자함수, 숫자함수, 날짜함수, 변환함수, 기타함수가 있다.

    • 다중행함수 (그룹함수)

    여러 행을 그룹으로 묶고 그룹당 하나의 결과를 반환한다. 중첩은 최대 2개 가능하다. 합계, 평균, 표준편차 등을 구할 때 주로 사용한다.

     

    오늘은 단일행함수 - 문자함수를 했다. 나머지는 내일 할 거.

     

     

     

     

    문자함수

    • 대/소문자 변환 함수
    • lower (컬럼명 혹은 표현식), upper(컬럼명 혹은 표현식)
    select first_name, lower(first_name), upper(first_name)
    from employees
    where department_id = 60;

     

    • 문자길이 반환 함수
    • LENGTH (컬럼명 혹은 표현식)
    select first_name, length(first_name)
    from employees
    where department_id = 60;

     

    • 부분문자열 반환 함수
    • SUBSTR (컬럼형 혹은 표현식, 시작위치, 길이), 시작위치는 1부터 시작한다.
      2번째 ~ 3번째글자가 아닌, 2번째부터 3글자를 반환하는 것이다. 
    • 자바와 다르게 시작이 1부터다.
    select first_name, substr(first_name, 2, 3)
    from employees
    where department_id = 60;

     

    • 문자 위치 반환 함수
    • 'a(찾을문자)' 가 언제 등장하나 알려 준다.
    • INSTR(컬럼명 혹은 표현식, '찾을문자'), 문자가 없으면 0을 반환한다.
    • 값이니까 대소문자 구분할 것!
    select first_name, instr(first_name, 'a')
    from employees
    where department_id = 60;

     

    • 상품명에서 공백 전 첫 단어만 들고 오기 (쪼금 억지)
    • SUBSTR을 사용해서 PRODUCT_NAME의 1번째부터 들고 올 건데 INSTR로 찾은 공백' ' - 1까지만 들고 올 것.
    select product_name, substr(product_name, 1, instr(product_name, ' ') - 1)
    from sample_products;

     

    • 문자 길이가 지정된 길이보다 짧을 때 지정된 길이가 될 때까지 문자의 좌 / 우에 글자 추가하기
    • LPAD(컬럼 혹은 표현식, 길이, '패딩문자'), RPAD(컬럼명 혹은 표현식, 길이, '패딩문자')
    select first_name, lpad(first_name, 10, '#'), rpad(first_name, 10, '#')
    from employees
    where department_id = 60;

    결과물

     

     

    그래서 얘를 어디에 쓰나요.

     

    1. 상품 번호 등을 001, 002 ... 이렇게 하고 싶을 때.

     

    2. 달력 만들기! LEVEL이란 걸 사용하자.

    select lpad(level, 2, '0')
    from dual
    connect by level <= 12;

    달력이다!

     

     

    + DUAL이라는 건 1행 1열짜리 테이블이라고 한다. 결과를 한번만 출력하게 한다. 

     

     


     

     

    잘못된 정보에 대한 지적은 언제나 환영입니다. 

     

    복습 끝!

     

     

     

     

Designed by Tistory.