ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL 함수(문자함수)
    SQL 2023. 4. 12. 21:07

    ◆ 문자함수

    - UPPER: 알파벳 값을 대문자로 변환

    - LOWER: 알파벳 값을 소문자로 변환

    - INITCAP: 각 단어의 첫번째 문자를 대문자로 변환, 그 뒤는 소문자로 변환

     

    SELECT 'bigdata' COL1
    	, UPPER('bigdata') COL2
        
        
    SELECT ENAME COL1
    	, LOWER(ENAME) COL2
       WHERE DPTNO = 30;
       
       
     SELECT ENAME COL1
     	, INITCAP(ENAME) COL2
       FROM EMP
      WHERE DEPTNO = 30;

    - CONCAT: 두 문자열을 하나로 연결(||과 동일해서 자주 사용 안함)

    - REPLACE: 첫번째 인자 값에서 두번째 인자값에 해당하는 문자를 세번째 인자 값으로 변경(세번째 인자값이 없으면 NULL로 변경)

    - SUBSTR/SUBSTRING: 문자열 중 원하는 부분만 선택(문자수 기준)(세번째 인자 값이 없으면 문자열 끝까지)

    SELECT JOB||ENAME COL1
    	, CONCAT(JOB, ENAME) COL2.  #COL1=COL2
        , REPLACE(JOB, 'MAN', '*') COL3
       FROM EMP
      WHERE DEPTNO = 30;
      
    SELECT ENAME COL1
    	, SUBSTR(ENAME, 1, 3) COL2
       FROM EMP
      WHERE DEPTNO = 30;

    - LENGTH: 문자열 길이(문자 수 기준)

    - LPAD: 첫째 인자에 셋째 인자를 둘째 인자 길이(Byte)가 될 때까지 왼쪽부터 채움

    - RPAD: 오른쪽부터 채움

    SELECT ENAME COL1
    	, LENGTH(ENAME) COL2
       FROM EMP
      WHERE LENGTH(ENAME) >= 6;
      
      SELEFT SAL COL1
      	, LPAD(ENAME, 8, '*') COL2
        , RPAD(ENAME, 8, '*') COL3

    - LTRIM: 왼쪽부터 해당 문자 제거. 인자 값 없을 시 공백 제거

    - RTRIM: 오른쪽부터 제거

    - TRIM: 양쪽의 해당 문자 제거 or (LEADING(왼쪽) | TRAILING(오른쪽) | BOTH(양쪽) FROM)

    - ASCII: 특정 값의 아스키코드 리턴

    - CHR: 아스키코드 값으로 문자 리턴

    - POSITION: 문자열에서 특정 문자의 위치 리턴(찾는 값이 없으면 0리턴)

     

    ◆ 연습문제

    1. 사원명에 대/소문자가 혼용되어 입력되었다고 가정하고, LIKE를 사용하여 두번째 문자에 C가 포함된 사원정보를 출력하는 SQL 작성하기
    
    SELECT EMPNO
    	, UPPER(ENAME)
        , JOB, MGR, HIREDATE, SAL, COMM, DEPTNO
        FROM EMP
       WHERE UPPER(ENAME) LIKE '_C%';
       
       
    2. 사원명의 길이가 5자 이상이고 부서번호가 20인 SQL(ENAME_1은 양쪽 문자에서 'S'제거한 결과)
     
     SELECT ENAME
     	, TRIM(BOTH 'S' FROM ENAME) ENAME_1
        FROM EMP
       WHERE LENGTH(ENAME) >=5 
       	AND DEPTNO = 20;
        
    3. 사원명의 3번째 글자가 'L'인 사원정보를 출력하는 SQL
     
     - LIKE 사용
     SELECT *
     	FROM EMP
       WHERE ENAME LIKE '__L%';
       
     - LIKE 미사용
     SELECT *
     	FROM EMP
       WHERE SUBSTR(ENAME, 3, 1) = 'L';
       
    4. 직무의 2번째 글자가 'A'인 데이터를 출력하고, 직업의 'MAN'을 'WOMAN'으로 변경하여 출력
    
    SELECT EMPNO, ENAME
    	, REPLACE(JOB, 'MAN', 'WOMAN) JOB
        , SAL
       FROM EMP
      WHERE SUBSTR(JOB, 2, 1) = 'A';

    'SQL' 카테고리의 다른 글

    SQL 함수(CASE 문)  (0) 2023.04.13
    SQL 함수(명시적 유형변환 함수)  (0) 2023.04.12
    SQL 함수(숫자 함수)  (0) 2023.04.12
    SELECT 문(LIMIT, OFFSET)  (0) 2023.04.12
    SELECT문 기초  (0) 2023.03.26
Designed by Tistory.