함수의 구분은 여섯가지로 가능하다.

  1. 문자열 함수
  2. 숫자 함수
  3. 날짜 함수
  4. 변환 함수
  5. NULL 관련 함수
  6. 집계함수
  • 문자열 함수 문자열 추출함수 SUBSTR(문자열, 시작위치, 길이)
    SELECT SUBSTR('HELLO',1,3) FROM DUAL;
    SELECT SUBSTR('HELLO',3) FROM DUAL;
    SELECT SUBSTRB('HELLO',3) FROM DUAL;
    
  • 모든 학생의 이름과 출생 월만을 조회하시오.
    SELECT NAME, SUBSTR(BIRTHDAY,3,2) FROM MEMBERS;
    
  • 회원중에서 전화번호가 011로 시작하는 회원의 모든 정보를 출력하시오.
    SELECT * FROM MEMBERS WHERE SUBSTR(PHONE, 1,3) = '011';
    SELECT * FROM MEMBERS WHERE PHONE LIKE '011%';
    

    위두문장은 같은 결과를 출력한다. ->조건절이 필요한건지 뽑아낼정보가 무엇인지 잘 생각해야한다. -> 조건절에는 함수가 들어가는게 좋지는 않다. 연산자가있는지 체크해서 연산자를 쓰자

  • 회원중에서 생년월이 7,8,9월인 회원의 모든 정보를 출력하시오.
    SELECT * FROM MEMBERS WHERE SUBSTR(BITHDAY, 6,2) IN ('07', '08','09');
    
  • 전화번호를 등록하지 않은 회원 중에서 생년 월이 7,8,9월인 회원의 모든 정보를 출력하시오.
    SELECT * FROM MEMBERS WHERE PHONE IS NULL AND SUBSTR(BITHDAY, 6,2) IN ('07', '08','09');
    
  • 문자열 덧셈 함수
    SELECT CONCAT('홍','길동') FROM DUAL;
    
  • 문자열 연산
    SELECT 3||'4' FROM DUAL
    
  • 문자열 트림 함수 ( 빈공백을 없앰)
    SELECT LTRIM('    HELLO    ') FROM DUAL; -- 왼쪽 공백만 없애줌
    SELECT RTRIM('    HELLO    ') FROM DUAL; -- 오른쪽 공백만 없애줌
    SELCET TRIM('    HELLO    ') FROM DUAL;  -- 양쪽공백을 없애줌
    
  • 문자열 소문자 또는 대문자로 변경하기
    SELECT LOWER('NeWlEC') FROM DUAL;  --다 소문자로 바뀌게된다.
    SELECT UPPER('neWLec') FROM DUAL;  -- 다 대문자로 바뀌게된다.
    
  • 회원 아이디가 ‘newlec’ 인 회원을 조회하시오 ( 단 대/소문자를 가리지않음)
    SELECT * FROM STUDENTS WHERE UPPER(SID) = UPPER('newlec');
    
  • 문자열 대치함수 (REPLACE(문자열 찾는 문자열, 대치할문자열) / TRANSLATE() )
    SELECT REPLACE('WHERE WE ARE','WE','YOU') FROM DUAL;   --WE라는 문자를 YOU로 바꿔준다. (통채)
    SELECT TRANSLATE('WHERE WE ARE','WE','YOU') FROM DUAL;  -- W->Y E->O 로바뀐다. (대치되서바뀐다.)
    
  • 회원의 이름과 주소를 조회하시오. (단 주소의 빈칸없이 출력하시오)
    SELECT NAME, REPLACE(ADDRESS, ' ','') FROM STUDENTS; --한칸짜리 빈공백을 없도록바꾸는것
    

댓글남기기