블링블링 범블링

Ch.03 - SQL 함수 본문

Technology/데이터베이스

Ch.03 - SQL 함수

뻠스키 2018. 7. 3. 10:28


Database 03 - oracle 11g




1. 함수


  • 하나의 큰 프로그램에서 반복적으로 사용되는 부분들을 분리한 작은 서브 프로그램

  • 호출하고 실행 결과를 리턴 하는 방식으로 사용

  • DB 에서 함수는 2가지 유형

    • N개의 입력에 대한  N개의 OUTPUT - 단일 행 함수

    • N개의 입력에 대한 1개의 OUTPUT - 그룹 함수

  • 단일 행 함수

    • 문자열 함수 - CAHRACTER

      • RETURN : CHARACTER

      • RETURN : NUMBER

    • 숫자 함수

      • RETURN : NUMBER

    • 날짜 함수

      • RETURN : DATE, NUMBER

    • 타입 변환 함수

      • RETURN : ANY

    • 기타 함수

      • RETURN : ANY



2. 함수 종류 (문자열)


 

  • LENGTH 함수
      • 주어진 컬럼 값/문자열 길이를 반환하는 함수
      • CHAR 데이터 타입 컬럼 값을 입력 받은 경우
      • 실제 데이터 길이 (문자 개수) 에 상관없이 컬럼 값에 따라 결과 값을 출력하게 됨.
  • INSERT 함수
      • 찾는 문자열이 지정한 위치부터 지정한 회수만큼 나타난 시작 위치를 반환하는 함수 (파라미터가 2~4개 사이)
      • 파라미터 2 ~ 4 개
          • STRING
          • SUBSTRING : 찾으려는 문자
          • POSITION : 어디부터 찾을지 결정하는 시작 위치 ( DEFAULT 1 )
              • POSITION > 0 : STRING 의 시작부터 끝 방향으로 찾는다는 의미
              • POSITION < 0 : STRING의 끝부터 시작방향으로 찾는다는 의미
          • OCCURRENCE
              • SUBSTRING 이 반복될 때의 지정하는 빈도 ( DEFAULT 1 )
              • 음수 값은 사용할 수 없음
          • RETURN 값 : NUMBER
  • LPAD / RPAD
      • 주어진 컬럼 / 문자열에 임의의 문자열을 왼쪽, 오른쪽에 덧붙여 길이 N 의 문자열을 반환하는 함수
      • 파라미터 2 ~ 3 개
          • STRING : 문자열
          • N
              • 반환할 문자열의 길이 (byte = SIZE)
              • 원래 String 길이보다 작다면 N만큼 잘라서 표시
          • STR
              • 덧붙이려는 문자
              • 생략하면 공백 한 문자가 덧붙여짐
      • RETURN 값 : CHARACTER
      • RETURN 값 : NUMBER
  • TRIM 함수
    • LTRIM / RTRIM
      • 주어진 컬럼/문자열의 왼쪽, 오른쪽에서 지정한 STR에 포함된 모든 문자를 제거한 나머지를 반환하는 함수 (LTRIM, RTRIM)
      • 패턴을 제거하는 의미가 아님 !!!!!   ----- 문자열이 아닌 문자 제거!
      • 파라미터 1 ~ 2 개
        • STRING : 문자열
        • STRING : 지우기 위한 문자 (각각 하나의 문자를 의미), 없으면 공백 제거!!!!
      • RETURN 값 : CHARACTER
    • TRIM
      • 주어진 컬럼/문자열의 왼쪽, 오른쪽에서 지정한 STR에 포함된 모든 문자를 제거한 나머지를 반환하는 함수 (LTRIM, RTRIM)
      • 패턴을 제거하는 의미가 아님 !!!!!   ----- 문자열이 아닌 문자 제거!
      • 파라미터 1 ~ 2 개
        • STRING : 문자열
        • STRING : 지우기 위한 문자 (각각 하나의 문자를 의미), 없으면 공백 제거!!!!
      • RETURN 값 : CHARACTER
    • DISTINCT
    • 하나의 유일한 값으로 출력하게 된다.
    • 두 개의 결과를 중복되지 않는 값으로 출력
  • WHERE 구문은 요구 사항을 처리한다.
  • AND, OR, NOT 연산 ---- (TIP) 요구사항이 주어지면, AND OR NOT 을 적어놓고 끊어가면서 문제를 해결하면 쉽다.
  • 연결 연산자 ( || ) 를 사용하면 여러 컬럼을 한 칼럼인 것처럼 연결하거나, 컬럼과 리터널을 연결할 수 있다.
  • AND OR NOT

 AND

TRUE

FALSE

NULL

TRUE

T

F

N

FALSE 

F

F

F

NULL

N

F

N

OR

TRUE

FALSE

NULL

TRUE

T

T

T

FALSE 

T

F

N

NULL

T

N

N





3. SQL 연산자


 OPERATOR

의미 

 =

같다 

 >, <

크다 / 작다 

 >= , <=

크거나 작다 / 작거나 같다 

 !=

같지 않다 

 BETWEEN AND

특정 벙위에 포함되는지 비교
(크거나 같다, 작거나 같다라는 의미를 포함한다)

+) AND 대신 사용가능 

 LIKE , NOT LIKE

문자 패턴을 비교 

 IS NULL , IS NOT NULL

NULL 여부 비교 

 IN

비교 값 목록에 포함되는지 여부 비교 


  • LIKE
    • 비교하려는 값이 지정한 특정 패턴 (PATTERN)을 만족시키면 TRUE를 반환하는 연산자
    • 패턴 지정을 위해 와일드 카드 (WILD CARD) 사용
    • % : % 부분에는 임의 문자열 (0개 이상의 임의의 문자) 이 있다는 의미
    • _ : _ 부분에는 문자 한개만 있다는 의미


  • ESCAPE
    • _ 혹은 % 가 패턴 비교를 위한 문자일지 모를 수 있는 경우가 있다.
    • 이 때 ESCAPE 구문을 사용해서 특정 문자를 설정하고 그 문자 뒤에 있는 문자를 '비교 문자' 로 취급한다.


  • IS NULL / IS NOT NULL
    • NULL 은 = 연산이 안되기 때문에 IS NULL 연산자를 쓴다.


  • IN
    • 비교하려는 값 목록에 일치하는 값이 있으면 TRUE를 반환하는 연산자
    • OR 대신 사용 가능


  • 연산자 우선순위
    • 알 필요 없음
    • 그냥 괄호 () 로 처리하는게 확실함


'Technology > 데이터베이스' 카테고리의 다른 글

Database 01 - oracle 11  (0) 2018.07.03
ch05  (0) 2018.07.03
Ch.02 - BASIC SELECT 구문  (0) 2018.07.03
Ch.01 - Database 의 기초 (DBMS)  (0) 2018.07.03
[DB 6장] SQL  (0) 2018.05.01
Comments