1. CONCAT(c1, c2)
    • || 과 똑같이 동작한다.
    • 문자열 c1과 문자열 c2를 결합해주는 함수이다.
    • c1과 c2사이에 문자를 넣어주고 싶으면 2중으로 사용을 해줘야 하는 불편함이 있다.
    • SELECT CONCAT('HELLO', 'SQL') FROM DUAL;
      //출력 : HELLOSQL
      SELECT 'HELLO'||' '||'SQL' FROM DUAL;
      //출력 : HELLO SQL
    • 위와같이 CONCAT의 경우 문자열을 결합할 때 문자열 사이에 문자를 넣어줄 수 없다는 단점이 있다.
    • 하지만 ||의 경우 문자열 사이에 문자로 연결자를 넣어주기 편함으로 CONCAT대신 ||를 추천한다.
  2. LOWER(c1), UPPER(c1), INITCAP(c1)
    • LOWER : c1에 저장된 자료를 모두 소문자로 변환
    • UPPER : c1에 저장된 자료를 모두 대문자로 변환
    • INITCAP : c1에 저장된 자료중 단어의 첫 글자만 대문자로 변환
      • 변환 시 단어의 첫 글자 확인은 공백을 구분자로 한 칸 이상의 공백이 있으면 공백 다음 단어가 첫 글자
    • SELECT LOWER('HELLO') FROM DUAL;
      //출력 : hello
      SELECT UPPER('hello') FROM DUAL;
      //출력 : HELLO
      SELECT INITCAP('HELLO SQL HELLOSQL hello sql hellosql') FROM DUAL;
      //출력 : Hello Sql Hellosql Hello Sql Hellosql
  3.  LPAD(c1, n [, c2]), RPAD(c1, n[,c2])
    • LPAD : n의 길이만큼 기억공간에 왼쪽부터 c1을 채우고 남는 공간은 c2를 채움
    • RPAD : n의 길이만큼 기억공간에 오른쪽부터 c1을 채우고 남는 공간은 c2를 채움
    • SELECT LPAD('1234567', 10, '*') FROM DUAL;
      //출력 : ***1234567
      SELECT RPAD('1234567', 10, '*') FROM DUAL;
      //출력 : 1234567***
    • 10의 길이를 만들어주고 처음 주어진 문자열을 L의 경우에는 오른쪽에 붙이고 남은 공간을 *로, R의 경우에는 왼쪽에 붙히고 남은 공간을 *로 채워준다
  4. LTRIM(c1 [,2]), RTRIM(c1 [,2]), TRIM(c1)
    • c1의 우측(RTRIM)또는 좌측(LTRIM)에서 첫 번째로 만나는 문자열이 c2와 같으면 삭제
    • c2가 삭제되면 공백은 제거된다.
    • TRIM : c1양쪽의 무효 공백 제거
      • 무효 공백 : 데이터 사이의 공백이 아닌 데이터가 나오기 전과 나온 후의 공백
      • 유효 공백 : 데이터 사이의 공백. 유효 공백은 아스키코드값으로도 나와있다(40)
        • 유효공백은 LTRIM, RTRIM, TRIM으로는 제거가 불가능하고 REPLACE로 삭제가 가능하다
    • SELECT LTRIM('APPLE', 'AP') FROM DUAL;
      //출력 : LE
      SELECT LTRIM('          APPLE') FROM DUAL;
      //출력 : APPLE
      SELECT RTRIM('APPLE', 'LE') FROM DUAL;
      //출력 : APP
      SELECT RTRIM('APPLE         ') FROM DUAL;
      //출력 : APPLE
      SELECT TRIM('          APPLE BANANA ORANGE STRAWBERRY          ') FROM DUAL;
      //출력 : APPLE BANANA ORANGE STRAWBERRY
    • c2를 생략한 경우 공백이 삭제된 것을 볼 수 있고 TRIM의 경우 양쪽 공백만 삭제된 것을 확인할 수 있다
  5. SUBSTR(c1, n1 [, n2])
    • 주어진 문자열 c1의 n1번째 인덱스부터 시작해서 n2의 개수만큼 글자를 부분 문자열로 추출하여 반환한다
    • n2가 생략되면 n1번째 인덱스부터 나머지 글자를 모두 추출하여 반환한다.
    • n1의 시작 인덱스는 1이며 0을 입력해도 1과 같이 동작한다
    • n1이 음수이면 제일 오른쪽 자리부터 처리된다
    • n2가 글자보다 많으면 c1이 가지고 있는 문자만큼만 출력한다
    • SELECT SUBSTR('무궁화 꽃이 피었습니다.', 1) FROM DUAL;
      //출력 : 무궁화 꽃이 피었습니다.
      SELECT SUBSTR('무궁화 꽃이 피었습니다.', 0, 3) FROM DUAL;
      //출력 : 무궁화
      SELECT SUBSTR('무궁화 꽃이 피었습니다.', 1, 3) FROM DUAL;
      //출력 : 무궁화
      SELECT SUBSTR('무궁화 꽃이 피었습니다.', 1, 50) FROM DUAL;
      //출력 : 무궁화 꽃이 피었습니다.
      SELECT SUBSTR('무궁화 꽃이 피었습니다.', -5, 10) FROM DUAL;
      //출력 : 었습니다.
    • 0과 1이 동일하게 동작하며, c2를 삭제하거나 문자열의 길이보다 큰 값을 입력하면 끝까지 출력되고, 마이너스 인덱스를 입력하면 오른쪽부터 숫자를 세서 출력을 해준다.
  6. REPLACE(c1, c2 [, c3])
    • 주어진 문자열 c1에서 c2를 찾아 c3로 치환한다
    • c3가 생략되면 c2를 삭제한다
    • c3를 생략하고 c2에 공백을 넣으면 c1안에 모든 공백을 삭제한다.
    • SELECT REPLACE('무궁화 꽃이 피었습니다.', '무궁화', '진달래') FROM DUAL;
      //출력 : 진달래 꽃이 피었습니다.
      SELECT REPLACE('무궁화 꽃이 피었습니다.', '무궁화') FROM DUAL;
      //출력 :  꽃이 피었습니다.
      SELECT REPLACE('    무궁화 꽃이 피었습니다.    ', ' ') FROM DUAL;
      //출력 : 무궁화꽃이피었습니다.
    • 두 번째 예제의 경우 공백은 선택이 되지 않았으므로 삭제되지 않고 앞에 남아있는 걸 볼 수 있고 세 번째 출력문의 경우 모든 유효 공백과 무효 공백이 사라진다
  7. INSTR(c1, c2 [, m [, n]]) / INDEX OF STRING
    • 주어진 문자열 c1에서 문자열 c2가 처음 나타난 위치를 반환
    • m : 검색의 시작 위치를 지정
    • n : 문자열 c1에서 찾으려는 문자열 c2가 n번째로 나오는 위치를 반환
      • 없는 경우 NULL이 아닌 0을 리턴
    • SELECT INSTR('APPLE BANANA ORANGE STRAWBERRY', 'E') FROM DUAL;
      // 출력 : 5
      SELECT INSTR('APPLE BANANA ORANGE STRAWBERRY', 'E', 6) FROM DUAL;
      // 출력 : 19
      SELECT INSTR('APPLE BANANA ORANGE STRAWBERRY', 'E', 6, 2) FROM DUAL;
      // 출력 : 27
      1. 'APPLE BANANA ORANGE STRAWBERRY'라는 문자열에서 첫 번째로 나온 E의 위치 5를 반환
      2. 위의 문자열에서 6번째 인덱스 이후로 처음 나오는 E의 위치 19를 반환
      3. 위의 문자열에서 6번째 인덱스 이후로 2번째로 나오는 E의 위치 27을 반환

'DataBase > Oracle' 카테고리의 다른 글

10. Function - 날짜 함수  (0) 2021.07.24
9. Function - 숫자 함수  (0) 2021.06.22
7. 연산자(Operator)  (0) 2021.06.18
7. 자료형(Data type)  (0) 2021.06.17
6. Selec  (0) 2021.06.14

+ Recent posts